PAT甲级 1084 Broken Keyboard

朱雀 2023-07-24 14:53 199阅读 0赞

在这里插入图片描述
题意:
1.在第一行字符串中找出第二行中并没有出现过的字符,然后输出
2.查找的时候按照从左往右的原则,并且输出的时候需要保证都是大写的字母

这道题和之前的PAT A1050很像,利用hashtable思想解决起来很方便,但是如果采用遍历的遍历的方法的话复杂度会很高

  1. #include<iostream>
  2. #include<cstring>
  3. #include<map>
  4. using namespace std;
  5. int main()
  6. {
  7. string s1,s2;
  8. getline(cin,s1);
  9. getline(cin,s2);
  10. map<char,bool> m;
  11. for(int i=0;i<26;i++)m['A'+i]=false;
  12. for(int i=0;i<10;i++)m[i]=false;
  13. m['_']=false;
  14. for(int i=0;i<s2.size();i++)
  15. {
  16. m[toupper(s2[i])]=true;
  17. }
  18. for(int i=0;i<s1.size();i++)
  19. {
  20. if(m[toupper(s1[i])]==false)
  21. {
  22. printf("%c",toupper(s1[i]));
  23. m[toupper(s1[i])]=true;
  24. }
  25. }
  26. return 0;
  27. }

发表评论

表情:
评论列表 (有 0 条评论,199人围观)

还没有评论,来说两句吧...

相关阅读