1.删除输入的字符
输入一串字符str1,再输入一串字符str2,不区分大小写将str1里str2中出现过的字符删除并输出str1。
输入样例1:
aCbbDE--FF
AB-f
输出样例1:
CDE
输入样例2:
ABC--DD
abcd-
输出样例2:
blank
#include<iostream>
#include<set>
#include<algorithm>
using namespace std;
int main()
{
int i = 0;
string str1;
string str2;
set<char> st;
getline(cin,str1);
getline(cin,str2);
for(i=0;i<str2.size();i++)
{
st.insert(str2[i]);
}
set<char>::iterator it;
for(it=st.begin();it!=st.end();it++)
{
int loc = str1.find_first_of(*it);
while(loc!=-1)
{
str1.erase(loc,1);
loc = str1.find_first_of(*it);
}
}
st.clear();
for(i=0;i!=str2.size();i++)
{
if(isalpha(str2[i])==1)
str2[i]=str2[i]+32;
else if(isalpha(str2[i])==2)
str2[i]=str2[i]-32;
}
for(i=0;i<str2.size();i++)
{
st.insert(str2[i]);
}
for(it=st.begin();it!=st.end();it++)
{
int loc = str1.find_first_of(*it);
while(loc!=-1)
{
str1.erase(loc,1);
loc = str1.find_first_of(*it);
}
}
if(str1.empty())
cout<<"blank"<<endl;
else
cout<<str1<<endl;
return 0;
}
运行结果:
2.找出排在前M位的整数
输入数字数目N,输入要找出的前M位,输入所有数字,找出这组数字的前M位
输入样例:
5 2
100 200 300 500 600
输出样例:
600 500
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int N = 0;
int M = 0;
int i = 0;
vector<int> vec;
cin>>N;
cin>>M;
for(i=0;i<N;i++)
{
int j = 0;
cin>>j;
vec.push_back(j);
}
sort(vec.begin(),vec.end(),cmp);
for(i=0;i<M;i++)
cout<<vec[i]<<" ";
return 0;
}