PAT B 1039 到底買不買(20)

2021-07-28 00:12:19 字數 1215 閱讀 2221

題目鏈結在此。

非hash:

1. 需要乙個bool型陣列gflag,陣列中的某一項如果為true則表示這一項的下標球已經被買; 需要乙個count變數,存放還需要買幾個球。

2. 在遍歷第二個字串的時候遍歷第乙個字串,如果是要買的球,則標記上gflag陣列相應的位置並且count–,如果沒找到,則開始查詢第二個串的下乙個。

3. 最後,如果conut>0則表示還要珠子是需要買沒買到的;count==0則表示買齊了,按照題目要求輸出即可。

ac**:

#include

#include

#include

using

namespace

std;

int main(); //標識是非被選定

gets(goods);

gets(buy);

int glen = strlen(goods);

int blen = strlen(buy);

int count = blen; //用來儲存還需要買幾顆珠子

for(int i = 0 ; i < blen; i++)} }

if(count == 0)else

return

0;}

hash思路:

因為輸入只會是大小寫字母以及數字,所以講這些字元一一對應到整數,用hashtable陣列儲存每個字元的個數,用miss變數儲存缺少的字元個數;

遍歷第二個字串的時候,將相應的字元個數-1,如果個數小於零,則表明缺少了,則miss++。

ac**:

#include

#include

#include

using

namespace

std;

int change(char x)

int hashtable[1010] = ;

int main()

//讀入第二串

gets(str);

int len2 = strlen(str);

for(int i = 0 ; i < len2; i++)

}if(miss > 0)else

return

0;}

PAT B 1039 到底買不買

小紅想買些珠子做一串自己喜歡的珠串。賣珠子的攤主有很多串五顏六色的珠串,但是不肯把任何一串拆散了賣。於是小紅要你幫忙判斷一下,某串珠子裡是否包含了全部自己想要的珠子?如果是,那麼告訴她有多少多餘的珠子 如果不是,那麼告訴她缺了多少珠子。為方便起見,我們用 0 9 a z a z 範圍內的字元來表示顏...

PAT B1039 到底買不買 20分

1039 到底買不買 20分 小紅想買些珠子做一串自己喜歡的珠串。賣珠子的攤主有很多串五顏六色的珠串,但是不肯把任何一串拆散了賣。於是小紅要你幫忙判斷一下,某串珠子裡是否包含了全部自己想要的珠子?如果是,那麼告訴她有多少多餘的珠子 如果不是,那麼告訴她缺了多少珠子。為方便起見,我們用 0 9 a z...

1039 到底買不買(20)

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 小紅想買些珠子做一串自己喜歡的珠串。賣珠子的攤主有很多串五顏六色的珠串,但是不肯把任何一串拆散了賣。於是小紅要你幫忙判斷一下,某串珠子裡是否包含了全部自己想要的珠子?如果...