PAT ---- 1029. 旧键盘(20)
生活随笔
收集整理的這篇文章主要介紹了
PAT ---- 1029. 旧键盘(20)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1029. 舊鍵盤(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
個人解題思路:
? 將輸入的兩個String轉換成大寫 然后遍歷str1,每取出一個字符就與str2中的進行比較,如果有重復就說明該按鍵沒有壞,否則就是壞的,再與str3進行比較,有重復不添加,沒重復就添加進str3.再輸出str3.
#include"iostream" #include<cstdio> #include<string>using namespace std;void change(string &str){for (int i = 0; i < str.length(); i++){char c = str[i];if (c >= 'a' && c <= 'z')str[i] = c - ('a' - 'A');} }int main() {string str1,str2,str3="";getline(cin, str1);getline(cin, str2);change(str1);change(str2);int j = 0;for (int i = 0; i < str1.length(); i++){char c = str1[i];for (j = 0; j < str2.length(); j++){if (c == str2[j])break;}if (j >= str2.length()){int k = 0;for (; k < str3.length(); k++){if (c == str3[k])break;}if (k >= str3.length()){str3.push_back(c);}}}cout << str3 << endl;return 0; }
總結
以上是生活随笔為你收集整理的PAT ---- 1029. 旧键盘(20)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线性表的实现
- 下一篇: 1039. 到底买不买(20)