PAT甲级 1084 Broken Keyboard
题意:
1.在第一行字符串中找出第二行中并没有出现过的字符,然后输出
2.查找的时候按照从左往右的原则,并且输出的时候需要保证都是大写的字母
这道题和之前的PAT A1050很像,利用hashtable思想解决起来很方便,但是如果采用遍历的遍历的方法的话复杂度会很高
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
map<char,bool> m;
for(int i=0;i<26;i++)m['A'+i]=false;
for(int i=0;i<10;i++)m[i]=false;
m['_']=false;
for(int i=0;i<s2.size();i++)
{
m[toupper(s2[i])]=true;
}
for(int i=0;i<s1.size();i++)
{
if(m[toupper(s1[i])]==false)
{
printf("%c",toupper(s1[i]));
m[toupper(s1[i])]=true;
}
}
return 0;
}
还没有评论,来说两句吧...