PAT-乙级-1029 旧键盘

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。

输入格式:

输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。

输出格式:

按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。

输入样例:

7_This_is_a_test
_hs_s_a_es

输出样例:

7TI


分析:
  遍历两个数组s1,s2,i=j=0;每次将s1[i]和s2[j]转为大写字母
  如果s1[i]!=s2[j],判断是否是之前出现的错误字符,如果没出现则输出,将i,j向后移一位
  如果s1[i]==s2[j],无须操作,将i,j向后移一位


 1 //c++
 2 #include<iostream>
 3 #include<cctype>
 4 using namespace std;
 5 
 6 int main(){
 7   char a[81],b[81];
 8   int book[100]={0};
 9   cin>>a>>b;
10   int i=0,j=0;
11   while(a[i]!='\0'){
12       a[i]=toupper(a[i]);
13       b[i]=toupper(b[i]);
14     if(a[i]!=b[j]){
15       if(book[int(a[i])]==0){
16         book[int(a[i])]=1;
17         cout<<a[i];
18       }
19     }
20     else
21       j++;
22     i++;
23   }
24   return 0;
25 }

 


  
posted @ 2018-10-18 21:05  T丶jl  阅读(159)  评论(0编辑  收藏  举报