pat 乙级 1033 旧键盘打字(C++)
生活随笔
收集整理的這篇文章主要介紹了
pat 乙级 1033 旧键盘打字(C++)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
舊鍵盤上壞了幾個鍵,于是在敲一段文字的時候,對應的字符就不會出現(xiàn)。現(xiàn)在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣?
輸入格式:
輸入在 2 行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對應英文字母的壞鍵以大寫給出;每段文字是不超過 10?5個字符的串。可用的字符包括字母 [a-z, A-Z]、數(shù)字 0-9、以及下劃線 _(代表空格)、,、.、-、+(代表上檔鍵)。題目保證第 2 行輸入的文字串非空。
注意:如果上檔鍵壞掉了,那么大寫的英文字母無法被打出。
輸出格式:
在一行中輸出能夠被打出的結果文字。如果沒有一個字符能被打出,則輸出空行。
輸入樣例:
7+IE. 7_This_is_a_test.輸出樣例:
_hs_s_a_tst分析
- s1設為壞鍵,s2設為應該輸入的字符串。result設為第一次結果串,result2設為最終結果串。
- 先去掉s2中壞的鍵,就是用s2[i]的大寫形式遍歷s1。如果找不到,就記錄在result里。
- 如果s1里不包含’+’,result2=result;否則,遍歷result,將ASCII碼在’A’-'Z’之外的存入result2。
- 題目有一句話,保證字符串2非空,沒說字符串1,所以字符串1應該用getline讀取。
AC代碼
#include<iostream> #include<cctype> #include<string> using namespace std; int main() {string s1,s2,result="",result2="";getline(cin,s1);cin>>s2;int i;for(i=0; i<s2.length(); i++){if(s1.find(toupper(s2[i]))==string::npos){result+=s2[i];}}if(s1.find('+')!=string::npos){for(i=0; i<result.length(); i++){if(result[i]<'A'||result[i]>'Z'){result2+=result[i];}}}elseresult2=result;cout<<result2;return 0; }更多題解
pat 乙級(Basic Level) 題解匯總(持續(xù)更新)(C++)
總結
以上是生活随笔為你收集整理的pat 乙级 1033 旧键盘打字(C++)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机顶盒怎么连接到路由器上如何连接机顶盒与
- 下一篇: 怎么设置无线路由器的lan口设置路由器l