PAT 乙級 1029.舊鍵盤

1029. 舊鍵盤

舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。

輸入格式:

輸入在2行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過80個字符的串,由字母A-Z(包括大、小寫)、數字0-9、以及下劃線“_”(代表空格)組成。題目保證2個字符串均非空。

輸出格式:

按照發現順序,在一行中輸出壞掉的鍵。其中英文字母只輸出大寫,每個壞鍵只輸出一次。題目保證至少有1個壞鍵。

輸入樣例:
7_This_is_a_test
_hs_s_a_es
輸出樣例:
7TI


解題思路

用一個標識數組來檢查第二個字符串的字母或數字的大寫,然後去檢查第一個字符串,沒有出現過的字符或數字就是壞掉的按鍵,具體實現看代碼,有一些小技巧,另大小寫轉換可以用toupper()這個函數,在頭文件cctype也就是c語言的ctype.h中。

代碼

#include <cstdio>
#include <cstring>
#include <cctype>
using namespace std;
int a[200] = {0};
int main() {
    char str1[100], str2[100];
    scanf("%s%s", str1, str2);
    int len1 = strlen(str1), len2 = strlen(str2);
    for (int i = 0; i < len2; ++i){
        a[toupper(str2[i])]++;
    }
    for (int i = 0; i < len1; ++i) {
        a[toupper(str1[i])]--;
        if(a[toupper(str1[i])]==-1)printf("%c",toupper(str1[i]));
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章