A1084
#include<iostream>
#include<cctype>
using namespace std;
//string类不用头文件,只能用cin和cout处理,不能用scanf和printf
int main()
{
//string::npos表示直到字符串结尾
string s1,s2,ans;
cin>>s1>>s2;
for(int i=0;i<s1.length();i++)
{
//当 当前字符串s1[i]不在s2中并且s1的大写也不在ans中
//表示在字符串中找不到这个字符string::npos
if(s2.find(s1[i])==string::npos&&ans.find(toupper(s1[i]))==string::npos)
{
//在s2里找s1
ans+=toupper(s1[i]);//toupper在头文件cctype里,表示将小写字母转换为大写字母
}
}
cout<<ans;
return 0;
}
B1033
#include<iostream>
#include<cctype>
using namespace std;
int main()
{ //首先string类型只能用cin和cout处理无法用scanf和printf处理
string bad,should;//用cin读取字符串的时候,是以空格为分隔符的
getline(cin,bad); //要是读入一整行的字符串应该用getline
getline(cin,should);
//遍历字符串
for(int i=0;i<should.length();i++)
{ //不等于string::npos的话是包含,等于的话是不包含
if(bad.find(toupper(should[i]))!=string::npos)//bad里包含should[i]的话
continue;//包含这个字母的话就跳过,不输出
if(bad.find('+')!=string::npos&&isupper(should[i])) //bad里包含+并且should[i]是大写的话
continue;
cout<<should[i];
}
return 0;
}
B1038
这道题很简单,但柳神很聪明
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n,k,temp;
scanf("%d",&n);
vector<int> a(101);//a数组存储同分数的个数
for(int i=0;i<n;i++)
{
scanf("%d",&temp);
a[temp]++;
}
scanf("%d",&k);
int ans;
for(int i=0;i<k;i++)
{
scanf("%d",&ans);
if(i==0) printf("%d",a[ans]);
else
printf(" %d",a[ans]);
}
return 0;
}