#46278: 解題思路 - Counting Sort, 前綴和, 二分搜 (Python 請別期待 sorted() 能幫上忙)


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 臺中市立惠文高級中學
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-09-21 22:24:46

這題的字串最長有 10000000 個,數字不小

但題目保證所有元素都是大寫英文字母,一共就 26 個

很適合使用 Counting Sort 排序(不會的話先去寫 e927. pA. 字串排序,看那邊的解題報告)

 

但你不需要真的把排序完的陣列做出來,只需要個別統計數量,按照字母的順序放到陣列中即可

 

舉例來說: ABCCBB

統計後的結果是 1個A,  3個B, 2個C

按照字母順序將統計結果記錄到陣列中,像這樣

[1, 3, 2]

 

然後對這個陣列做前綴和 (不會的話先去做 e339. 前綴和練習)

最後用二分搜找對應位置的字母即可

 

參考答案: gist(python)