【1084】Broken Keyboard (20 分)

举报
野猪佩奇996 发表于 2022/01/23 02:43:46 2022/01/23
【摘要】 https://pintia.cn/problem-sets/994805342720868352/problems/994805382902300672 输入格式: 7_This_is_a_test_hs_s_a_es 输出格式: 7TI 【大致思路】       分别读入两个字符串,第一个fo...

https://pintia.cn/problem-sets/994805342720868352/problems/994805382902300672

输入格式:


  
  1. 7_This_is_a_test
  2. _hs_s_a_es

输出格式:

7TI
 

【大致思路】
      分别读入两个字符串,第一个for循环枚举第一个字符串,内部嵌套的第二个for枚举第二个字符串,如果是小写字母则都转化为大写,若c1在第二个字符串中出现,则跳出内层for循环;内层for循环结束时,如果第二个字符串未出现c1,且c1未被输出过,则输出c1。
     对于上面的判断c1是否输出过:hashtable数组元素为false时则代表c1未被输出过;而如果输出c1后则令对应的hashtable[c1]=true。

【2个关键点】
(1)在不分大小写英文下,判断在第一个字符串中出现,但在第二个字符串中没出现的字符。
(2)同一个字符(不区分大小写)在最后均用大写字母输出一次


  
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string>
  5. #include<algorithm>
  6. using namespace std;
  7. 注意是两个"有联系"的字符串的比较
  8. 另外,可用bool型字数组HashTable[]表示字符是否已经输出
  9. int main(){
  10. string str1,str2;
  11. bool HashTable[128]={false}; //HashTable数组用来标记字符是否已被输出
  12. getline(cin,str1);
  13. getline(cin,str2);
  14. int len1=str1.length();
  15. int len2=str2.length();
  16. for(int i=0;i<len1;i++){ //枚举第一个字符串中的每个字符
  17. int j;
  18. char c1,c2;
  19. for(j=0;j<len2;j++){ //枚举第二个字符串的每个字符
  20. c1=str1[i];
  21. c2=str2[j];
  22. if(c1 >= 'a' && c1 <= 'z') c1-=32; //如果是小写字母,则转化为大写
  23. if(c2 >= 'a' && c2 <= 'z') c2-=32; //如果是小写字母,则转化为大写
  24. if(c1 == c2) break; //如果c1在第二个字符串中出现,则跳出
  25. }
  26. if( j == len2 && HashTable[c1] == false) {
  27. printf("%c",c1); //在第二个字符串中未出现c1,且c1未被输出过
  28. HashTable[c1]=true;
  29. }
  30. }
  31. system("pause");
  32. return 0;
  33. }

注意点

(1)空格也作为需要判断的字符;
(2)大小写不区分,且小写字母均输出其大写形式;
(3)HashTable数组的大小只要能把题目给出的字符包括即可——一般可直接设置ASCII码的个数128作为数组的长度。

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/99069158

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。