舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣?
輸入在 2 行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對應英文本母的壞鍵以大寫給出;每段文字是不超過 1 個字元的串。可用的字元包括字母 [a
-z
,a
-z
]、數字0
-9
、以及下劃線_
(代表空格)、,
、.
、-
、+
(代表上檔鍵)。題目保證第 2 行輸入的文字串非空。
注意:如果上檔鍵壞掉了,那麼大寫的英文本母無法被打出。
在一行中輸出能夠被打出的結果文字。如果沒有乙個字元能被打出,則輸出空行。
7+ie.
7_this_is_a_test.
_hs_s_a_tst
①首先開乙個128的bool型陣列,並將初始值設為true,預設所有鍵都是好的(ps.這裡不能用bool hashtable[128]=;這樣的語句,這種語句只能用於賦予初值全是flase的情況,要用memset函式)
1 memset(hashtable,true,sizeof(hashtable));
②輸入兩個字串,第乙個迴圈:將壞鍵的hashtable值設為false,可以想到,如果a壞了,那麼a對應的小寫字母a也不能輸出了,故若bad[i]是大寫字母,將其對應的小寫字母也變成false
1for(int i=0;i)
6 }
③第二個迴圈:輸出str,若雜湊值為true,說明這個鍵沒有壞,在這個前提下還要檢驗如果是大寫字母上檔鍵是不是壞了(+號的ascii碼值為43)
1for(int i=0;i)
6 }
1 #include2using
namespace
std;
3const
int maxn=100010;4
intmain()18}
19for(int i=0;i) 24}
25 }
PAT 1033 舊鍵盤打字
思路 用string定義兩個字串,然後比較就可以了。然而,開始直接用cin str1 str2,導致有部分測試點始終未過去,後來參考他人的部落格才發現這裡應該用getline原因就在於第一行可能是空行。錯誤 include include include using namespace std in...
PAT 1033 舊鍵盤打字 20
時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字 以及壞掉的那些鍵,打出的結果文字會是怎樣?輸入格式 輸入在2行中分別給出壞掉...
PAT1033舊鍵盤打字 20
舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字 以及壞掉的那些鍵,打出的結果文字會是怎樣?輸入格式 輸入在2行中分別給出壞掉的那些鍵 以及應該輸入的文字。其中對應英文本母的壞鍵以大寫給出 每段文字是不超過105個字元的串。可用的字元包括字母 a z,a ...