題目鏈結在此。
非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 小紅想買些珠子做一串自己喜歡的珠串。賣珠子的攤主有很多串五顏六色的珠串,但是不肯把任何一串拆散了賣。於是小紅要你幫忙判斷一下,某串珠子裡是否包含了全部自己想要的珠子?如果...