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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PAT乙级1033题解

發布時間:2024/3/13 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT乙级1033题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目詳情:

1033 舊鍵盤打字 (20 分)
舊鍵盤上壞了幾個鍵,于是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣?

輸入格式:
輸入在 2 行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對應英文字母的壞鍵以大寫給出;每段文字是不超過 10的?5次方個字符的串。可用的字符包括字母 [a-z, A-Z]、數字 0-9、以及下劃線 _(代表空格)、,、.、-、+(代表上檔鍵)。題目保證第 2 行輸入的文字串非空。

注意:如果上檔鍵壞掉了,那么大寫的英文字母無法被打出。

輸出格式:
在一行中輸出能夠被打出的結果文字。如果沒有一個字符能被打出,則輸出空行。

輸入樣例:
7+IE.
7_This_is_a_test.

輸出樣例:
_hs_s_a_tst

思路:

本題的邏輯性較強,關鍵在于字符串的查找判斷。

我們遍歷給出的完整的字符串,查找每一個字符是否能在給出的壞鍵字符串中找到,能找到則不輸出,若能找到+號則所有的大寫字母都不輸出,這里要注意壞鍵字符串中的字母都是大寫形式。

注意由于存在沒有壞鍵的情況,即輸入的第一行可能為空行,用cin會出現問題,這里建議使用getline。

解答:

#include <iostream> using namespace std;int main() {string str1, str2;getline(cin, str1);getline(cin, str2);for (int i = 0; i < str2.size(); i++) {int pos = -1,pos2 = -1,flag = 1;int pos3 = str1.find('+');if (pos3 != str1.npos && isupper(str2[i])) flag = 0;if (islower(str2[i])) {pos = str1.find(str2[i] - 32);if (pos == str1.npos) cout << str2[i];} else {pos2 = str1.find(str2[i]);if (pos2 == str1.npos && flag == 1) cout << str2[i];}}return 0; }

總結

以上是生活随笔為你收集整理的PAT乙级1033题解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。