- 测试点2有个坑就是不能用cin来输入字符
- 题目保证第二行输入非空,第一行可能是空,cin读不了空字符
#include<iostream>
#include<vector>
#include<cctype>
#include<algorithm>
#include<sstream>
#include<string>
#include<cstdio>
using namespace std;
int main() {
string a,b;
getline(cin,a);
getline(cin,b);
int str[200]={0};
bool ans=true;
if(a.find('+')!=string::npos) ans=false;
for(int i=0;i<a.size();i++){
if(ans){
char x=toupper(a[i]);
str[x]=1;
}else{
char x=tolower(a[i]);
str[x]=1;
}
}
if(ans){
for(int i=0;i<b.size();i++){
char x=toupper(b[i]);
if(!str[x]) cout<<b[i];
}
}else{
for(int i=0;i<b.size();i++){
if(isupper(b[i])) continue;
char x=tolower(b[i]);
if(!str[x]) cout<<b[i];
}
}
return 0;
}
附上柳诺小姐姐的代码,好简洁哈
#include <iostream>
#include <cctype>
using namespace std;
int main() {
string bad, should;
getline(cin, bad);
getline(cin, should);
for (int i = 0; i < should.length(); i++) {
if (bad.find(toupper(should[i])) != string::npos) continue;
if (isupper(should[i]) && bad.find('+') != string::npos) continue;
cout << should[i];
}
return 0;
}