PAT B1033旧键盘打字
很简单的一道题,搞了半天没有AC….o(╥﹏╥)o
有一分的测试点结果出错:原因:用了cin输入
如果没有坏键的话,用cin取不到这种情况,所以需要改用gets…
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
const int maxn = 100010;
bool ht[256];
char errs[maxn],s[maxn];
int main(){
memset(ht,true,sizeof(ht));
int lenerrs,lens,i;
gets(errs);
gets(s);
/*一分的测试点结果出错:原因:用了cin输入
如果没有坏键的话,用cin取不到这种情况
改用gets
cin>>errs;
cin>>s;
*/
lenerrs = strlen(errs);
lens = strlen(s);
for(i = 0; i < lenerrs; ++i){
if(errs[i] >= 'A' && errs[i] <= 'Z'){
errs[i] = errs[i] - 'A' + 'a';
}
ht[errs[i]] = false;
}
for(i = 0; i < lens; ++i){
if(s[i] >= 'A' && s[i] <= 'Z'){
int low = s[i] - 'A' + 'a';
if(ht['+'] == true && ht[low] == true){
cout<<s[i];
}
}
else if(ht[s[i]] == true){
cout<<s[i];
}
}
cout<<endl;
return 0;
}