zjm 為了準備霍格沃茲的期末考試,決心背魔咒詞典,一舉拿下咒語翻譯題
題庫格式:[魔咒] 對應功能
背完題庫後,zjm 開始刷題,現共有 n 道題,每道題給出乙個字串,可能是 [魔咒],也可能是對應功能
zjm 需要識別這個題目給出的是 [魔咒] 還是對應功能,並寫出轉換的結果,如果在魔咒詞典裡找不到,輸出 「what?」
【輸入】
首先列出魔咒詞典中不超過100000條不同的咒語,每條格式為:
[魔咒] 對應功能
其中「魔咒」和「對應功能」分別為長度不超過20和80的字串,字串中保證不包含字元「[」和「]」,且「]」和後面的字串之間有且僅有乙個空格。魔咒詞典最後一行以「@end@」結束,這一行不屬於詞典中的詞條。
詞典之後的一行包含正整數n(<=1000),隨後是n個測試用例。每個測試用例佔一行,或者給出「[魔咒]」,或者給出「對應功能」。
【輸出】
每個測試用例的輸出佔一行,輸出魔咒對應的功能,或者功能對應的魔咒。如果在詞典中查不到,就輸出「what?」
【樣例輸入】
[expelliarmus] the disarming charm
[rictusempra] send a jet of silver light to hit the enemy
[tarantallegra] control the movement of one's legs
[serpensortia] shoot a snake out of the end of one's wand
[lumos] light the wand
[obliviate] the memory charm
[expecto patronum] send a patronus to the dementors
[accio] the summoning charm
@end@
4[lumos]
the summoning charm
[arha]
take me to the sky
【樣例輸出】
light the wand
accio
what?
what?
[英文] 翻譯,求出英文雜湊值為 hash1,翻譯為 hash2
建立兩個 map,直接map[string,string]的話會超時
map[hash1] = index,s1[index] = 翻譯
map[hash2] = index,s2[index] = 英文
根據查詢判斷是 [英文] 還是 翻譯,然後再在對應的 map 中查詢即可
關於字串讀入的一些注意事項
1、cin的輸入字串問題 >> 是會過濾掉不可見字元(如 空格 回車,tab 等)
2、 scanf() 讀取字串時以空格為分隔,遇到空格就認為當前字串結束了,所以無法讀取含有空格的字串。
3、gets() 認為空格也是字串的一部分,只有遇到回車鍵時才認為字串輸入結束,所以,不管輸入了多少個空格,只要不按下回車鍵,對 gets() 來說就是乙個完整的字串。換句話說,gets() 用來讀取一整行字串。
4、注意處理回車在緩衝區的問題
程式設計 Week15 必做題
霍格沃茲!好了進入正題 題意 zjm 為了準備霍格沃茲的期末考試,決心背魔咒詞典,一舉拿下咒語翻譯題 題庫格式 魔咒 對應功能 背完題庫後,zjm 開始刷題,現共有 n 道題,每道題給出乙個字串,可能是 魔咒 也可能是對應功能 zjm 需要識別這個題目給出的是 魔咒 還是對應功能,並寫出轉換的結果,...
Week15 選做部分
採用字典樹的方式來解決字串匹配問題 再插入過程中判斷是否可以匹配 1 最後乙個字元落到已存在的節點 2 經過其他字串的尾部 include include using namespace std struct trie bool insert char str else if flag child ...
week 15 雜湊字串
解題思路 雜湊對映,因為是字串對映字串的,所以容易爆記憶體 要轉換成雜湊值的對映 一開始,我的s1,s2是用結構體的,但是它一直output limit 換成2維就過了 還有scanf的正則真好用 include include include include include using names...