攻破演算法題 雜湊 PAT B1029

2021-10-21 14:55:47 字數 1280 閱讀 2741

小紅想買些珠子做一串自己喜歡的珠串。賣珠子的攤主有很多串五顏六色的珠串,但是不肯把任何一串拆散了賣。於是小紅要你幫忙判斷一下,某串珠子裡是否包含了全部自己想要的珠子?如果是,那麼告訴她有多少多餘的珠子;如果不是,那麼告訴她缺了多少珠子。

為方便起見,我們用[0-9]、[a-z]、[a-z]範圍內的字元來表示顏色。例如在圖1中,第3串是小紅想做的珠串;那麼第1串可以買,因為包含了全部她想要的珠子,還多了8顆不需要的珠子;第2串不能買,因為沒有黑色珠子,並且少了一顆紅色的珠子。

每個輸入包含 1 個測試用例。每個測試用例分別在 2 行中先後給出攤主的珠串和小紅想做的珠串,兩串都不超過 1000 個珠子。

在一行中輸出冠軍隊的編號和總成績,其間以乙個空格分隔。注意:題目保證冠軍 隊是唯一的。

ppryygrrybr2258

yrr8rry

yes 8

ppryygrryb225

yrr8rry

no 2

輸入第一串字串,定義乙個hashtable[80]分別表示62種顏色(0 - 9、a - z、a - z)

每輸入乙個字元,對應的hashtable[index]++,輸入完成後,便儲存了第一條字串中各珠顏色出現的次數

輸入第二串字串,定義變數miss=0,表示缺失的珠子數

每輸入乙個字元,對應的hashtable[index]–,若hashtable[index]<0,則miss++,表示缺失的珠子數+1

若miss > 0 則輸出no miss的值(表示有珠子缺失)

否則,輸出yes 字串1 - 字串2的長度之差

#include

#include

#include

using

namespace std;

int hashtable[80]

;int

stringtoint

(char c)

else

if(c >=

'a'&& c <=

'z')

else

}int

main()

for(

int i =

0; i <

(int

)s2.

length()

;++i)}if

(miss >0)

else

return0;

}

雜湊 PAT B1029 舊鍵盤

題意 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字 以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。樣例 inpute 7 this is a test hs s a es output 7ti include include include incl...

PAT B 1029 到底買不買(C )

題目描述 輸入描述 每個輸入包含1個測試用例。每個測試用例分別在2行中先後給出攤主的珠串和小紅想做的珠串,兩串都不超過1000個珠子。輸出描述 如果可以買,則在一行中輸出 yes 以及有多少多餘的珠子 如果不可以買,則在一行中輸出 no 以及缺了多少珠子。其間以1個空格分隔。輸入例子 ppryygr...

PAT B1029 舊鍵盤 20分

題目鏈結 題目描述 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字 以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。輸入 輸入在 2 行中分別給出應該輸入的文字 以及實際被輸入的文字。每段文字是不超過 80 個字元的串,由字母 a z 包括大 小寫 數字...