- 舊鍵盤(20)
時間限制
200 ms
內存限制
65536 kB
代碼長度限制
8000 B
判題程序
Standard
作者
CHEN, Yue
舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。
輸入格式:
輸入在2行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過80個字符的串,由字母A-Z(包括大、小寫)、數字0-9、以及下劃線“_”(代表空格)組成。題目保證2個字符串均非空。
輸出格式:
按照發現順序,在一行中輸出壞掉的鍵。其中英文字母只輸出大寫,每個壞鍵只輸出一次。題目保證至少有1個壞鍵。
輸入樣例:
7_This_is_a_test
_hs_s_a_es
輸出樣例:
7TI
思路:逐個遍歷比較字符串,記錄下不同的字符,每次存儲丟失的字符時,先檢查是否已經存儲
#include <stdio.h>
#include <string.h>
int main()
{
char input[100] ={0}; //存放應該輸入的字符串
char output[100] ={0};//存放實際輸入的字符串
char lose[100] = {0}; //存放失效的鍵
int i = 0, j = 0, k = 0, n = 0;
int flag = 0; //設置標誌位,用於判斷是否是新出現的鍵
scanf("%s%s", input, output);
for(i = 0; i < strlen(input); i++)
{
if(input[i] == output[j] && j < strlen(output))
{
j++;
}
else
{
flag = 0;
if(input[i] >= 'a' && input[i] <='z')
{
input[i] = input[i] - 32;//換爲大寫字母
}
for(k = 0; k < n; k++)
{
if(input[i] == lose[k])
flag = 1;
}
if(flag == 0)
lose[n++] = input[i];
}
}
for(i = 0; i < n; i++)
printf("%c", lose[i]);
printf("\n");
return 0;
}