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;
}