日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[PAT乙级]1029 旧键盘

發(fā)布時(shí)間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [PAT乙级]1029 旧键盘 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

舊鍵盤(pán)上壞了幾個(gè)鍵,于是在敲一段文字的時(shí)候,對(duì)應(yīng)的字符就不會(huì)出現(xiàn)。現(xiàn)在給出應(yīng)該輸入的一段文字、以及實(shí)際被輸入的文字,請(qǐng)你列出肯定壞掉的那些鍵。
輸入格式:

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

按照發(fā)現(xiàn)順序,在一行中輸出壞掉的鍵。其中英文字母只輸出大寫(xiě),每個(gè)壞鍵只輸出一次。題目保證至少有 1 個(gè)壞鍵。
輸入樣例:

7_This_is_a_test _hs_s_a_es

輸出樣例:

7TI

代碼如下:

#include <iostream> #include <string> using namespace std;const int N = 100; int vis[N];int main() {string s1;string s2;cin >> s1 >> s2;for (int i = 0; i < s1.length(); i++){if (s1[i] >= 'a' && s1[i] <= 'z') s1[i] = s1[i] - 'a' + 'A';vis[s1[i]]++;}for (int i = 0; i < s2.length(); i++){if (s2[i] >= 'a' && s2[i] <= 'z') s2[i] = s2[i] - 'a' + 'A';vis[s2[i]]--;}for (int i = 0; i < s1.length(); i++){if (vis[s1[i]] > 0){vis[s1[i]] = 0;cout << s1[i];}}return 0; }

代碼如下:

#include <iostream> #include <string> #include <vector> using namespace std; const int N = 300; bool vis[N] = { 0 }; vector<char> v;int main() {string s1;string s2;cin >> s1 >> s2;int idx1 = 0;int idx2 = 0;int len1 = s1.length();int len2 = s2.length();while (idx1 < len1 && idx2 < len2){if (s1[idx1] != s2[idx2]){if ((int)s1[idx1] >= 'a' && (int)s1[idx1] <= 'z' && !vis[s1[idx1]]){vis[s1[idx1]] = true;vis[s1[idx1] - 32] = true;v.push_back(s1[idx1]);}else if ((int)s1[idx1] >= 'A' && (int)s1[idx1] <= 'Z' && !vis[s1[idx1]]){vis[s1[idx1]] = true;vis[s1[idx1] + 32] = true;v.push_back(s1[idx1]);}else if (!vis[s1[idx1]]){v.push_back(s1[idx1]);vis[s1[idx1]] = true;}idx1++;}else{idx1++;idx2++;}}while (idx1 < len1){if ((int)s1[idx1] >= 'a' && (int)s1[idx1] <= 'z' && !vis[s1[idx1]]){vis[s1[idx1]] = true;vis[s1[idx1] - 32] = true;v.push_back(s1[idx1]);}else if ((int)s1[idx1] >= 'A' && (int)s1[idx1] <= 'Z' && !vis[s1[idx1]]){vis[s1[idx1]] = true;vis[s1[idx1] + 32] = true;v.push_back(s1[idx1]);}else if (!vis[s1[idx1]]){v.push_back(s1[idx1]);vis[s1[idx1]] = true;}idx1++;}for (vector<char>::iterator it = v.begin(); it != v.end(); it++){if ((int)*it >= 'a' && (int)*it <= 'z')cout <<(char) (*it-32);else cout << *it;}cout << endl;return 0; }

總結(jié)

以上是生活随笔為你收集整理的[PAT乙级]1029 旧键盘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。