1033 旧键盘打字 (20 分)
题目链接
算法分析
对于坏掉的键的字符串的分析,分为这几种情况:
1.小写字母和数字直接标记。
2.读入+,就把所有的大写字母标记。
3.读入大写字母,把对应的小写字母也标记。
对于需要判断的字符串,只要按照前面的标记数组来判断能不能输出这个字符即可。
代码实现
#include<bits/stdc++.h>
#include<string.h>
using namespace std;
#define N 100010
string a, b;
int judge[300];
int main(){
cin>> a;
cin>> b;
int lena = a.size();
int lenb = b.size();
bool ju = 0;
for(int i = 0; i < lena; ++ i){
judge[a[i]] = 1;
if(a[i] == '+'){
if(ju) continue;
ju = 1;
for(int j = 'A'; j <= 'Z'; ++ j)
judge[j] = 1;
}
else if(a[i] >= 'A' && a[i] <= 'Z')
judge[a[i] - 'A' + 'a'] = 1;
}
for(int i = 0; i < lenb; ++ i){
if(judge[b[i]]) continue;
cout<< b[i];
}
cout<< endl;
return 0;
}