【1084 20】 Broken Keyboard
传送门
题意
给定两个字符串\(a,b\),求出\(b\)中缺少的\(a\)的字母,不区分大小写,按照扫描顺序,同一字母只输出一个
数据范围
\(|a,b|\leq 80\)
题解
- 每个字母都先变成大写字母,然后再判断
Code
#include<bits/stdc++.h>
using namespace std;
map<char,bool>mp;
char get(char c){
if(c<='z' && c>='a') return c-'a'+'A';
return c;
}
int main(){
string a,b; cin>>a>>b;
string ans="";
int i=0,j=0;
while(i<a.size() && j<b.size()){
if(a[i]==b[j]) i++,j++;
else {
char c=get(a[i]);
if(mp[c]) {
i++;
continue;
}
mp[c]=1;
ans+=c;
i++;
}
}
for(int k=i;k<a.size();k++) {
char c=get(a[k]);
if(!mp[c]) ans+=c;
}
cout<<ans<<endl;
}

浙公网安备 33010602011771号