pat B1033 舊鍵盤打字

2021-10-02 22:33:00 字數 840 閱讀 6400

題目鏈結->link

思路和b1029類似,但是有幾個坑。

首先用hashmap陣列儲存不能輸出的字元,設為false,初始化用memset(),初值為true,不能像b1029初始化為bool hashmap=false。

注意壞掉的字元統一用大寫輸入,那麼要將其轉換為小寫,將小寫的hashmap設為false。

當要輸出大寫字母時,僅當』+'號和其小寫字母對於hashmap值為true時,才能輸出。

測試點3是鍵盤不壞,即輸入第一行為空時,要用gets()讀取,因為scanf()讀到空格就結束;但是pat的gcc不支援gets(),所以可以用fgets(str1,maxn,stdin)或者getline()讀入。

#include

#include

#include

#include

using

namespace std;

const

int maxn=

100005

;char str1[maxn]

,str2[maxn]

;bool hashmap[

128]

;int

main()

int len2=

strlen

(str2)

;for

(i=0

;ielse

if(hashmap[c2]

==true)}

printf

("\n");

//沒有字元可以輸出,則輸出空行

return0;

}

PAT B1033 舊鍵盤打字

pat b1033 利用map進行雜湊,凡是壞了的字母鍵盤將大小寫都進行雜湊。要單獨處理。對於要輸出的每乙個字元,如果該字元已經雜湊儲存過,則不輸出 對於大寫字母必須 和該字母鍵盤都完好時才輸出。include include include includeusing namespace std m...

PAT B1033 舊鍵盤打字

舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字 以及壞掉的那些鍵,打出的結果文字會是怎樣?輸入在 2 行中分別給出壞掉的那些鍵 以及應該輸入的文字。其中對應英文本母的壞鍵以大寫給出 每段文字是不超過 10 5 個字元的串。可用的字元包括字母 a z,a ...

PAT B1033 舊鍵盤打字

1033 舊鍵盤打字 20 分 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字 以及壞掉的那些鍵,打出的結果文字會是怎樣?輸入在 2 行中分別給出壞掉的那些鍵 以及應該輸入的文字。其中對應英文本母的壞鍵以大寫給出 每段文字是不超過 10 5 個字元的串。...