PAT 乙級 1029 舊鍵盤
阿新 • • 發佈:2019-01-08
1029 舊鍵盤 (20 point(s))
舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。
輸入格式:
輸入在 2 行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過 80 個字元的串,由字母 A-Z(包括大、小寫)、數字 0-9、以及下劃線 _
(代表空格)組成。題目保證 2 個字串均非空。
輸出格式:
按照發現順序,在一行中輸出壞掉的鍵。其中英文字母只輸出大寫,每個壞鍵只輸出一次。題目保證至少有 1 個壞鍵。
輸入樣例:
7_This_is_a_test _hs_s_a_es
輸出樣例:
7TI
經驗總結:
這一題沒有坑,可以開一個256大小的標記陣列標記此字元是否出現,發現不同的字元如果是小寫,要將其轉換為大寫,最後按照順序輸出儲存所有的壞掉的字元就行啦~( 。ớ ₃ờ)ھ
AC程式碼
#include <cstdio> #include <cstring> int main() { char origin[90],real[90],weak[90]; bool flag[256]={false}; while(~scanf("%s",origin)) { getchar(); scanf("%s",real); int i=0,j=0,num=0; while(origin[i]!='\0') { if(origin[i]!=real[j]) { if(origin[i]>=97&&origin[i]<=122) origin[i]-=32; if(flag[origin[i]]==false) { flag[origin[i]]=true; weak[num++]=origin[i]; } ++i; } else { ++i;++j; } } for(int k=0;k<num;++k) printf("%c",weak[k]); } return 0; }