【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;
}
posted @ 2021-03-06 16:02  Hyx'  阅读(50)  评论(0)    收藏  举报