這題的字串最長有 10000000 個,數字不小
但題目保證所有元素都是大寫英文字母,一共就 26 個
很適合使用 Counting Sort 排序(不會的話先去寫 e927. pA. 字串排序,看那邊的解題報告)
但你不需要真的把排序完的陣列做出來,只需要個別統計數量,按照字母的順序放到陣列中即可
舉例來說: ABCCBB
統計後的結果是 1個A, 3個B, 2個C
按照字母順序將統計結果記錄到陣列中,像這樣
[1, 3, 2]
然後對這個陣列做前綴和 (不會的話先去做 e339. 前綴和練習)
最後用二分搜找對應位置的字母即可
參考答案: gist(python)