#21588: 終於有適合用counting sort的題目了


howgibaa@gmail.com (郝雞掰)

學校 : 不指定學校
編號 : 108829
來源 : [140.113.69.85]
最後登入時間 :
2024-04-29 01:17:18
e809. 1.字母排序 (Letters) -- 2019年11月TOI練習賽潛力組 | From: [220.141.67.89] | 發表日期 : 2020-06-24 19:57

我的變數宣告:

老師自定的字母排序規則 : order[26]

待排序的字串 : str[5000000]

order長度 : orderlen

str長度 : len

要找的位置 : find (就是輸入Q之後要輸入的東西)

答案的位置 : index

 

關鍵一:

order的長度即為字母的種類數

 

關鍵二:

宣告int counting[26];

建立雙重迴圈 只要order[i]跟str裡面的元素相同 就要counting[i]++

這樣counting[26]就會照著order的順序 儲存各個字母的個數

 

關鍵三:

建立一個迴圈

find-=counting[i] 此時index=i 只要find<=0 就要break (答案便是order[index])

p.s. 因為要執行Q次 所以還要再外加一個迴圈

 

祝好運!!!

 

 

 

 

 

 
ZeroJudge Forum