我正在嘗試編寫一個算法,按頻率和字母順序重新排列字符串中的字母。例如,「蘋果」變成「aelpp」。 「香蕉」變成「bnnaaa」。我應該如何按頻率順序排列字母?
我知道不同的語言,但我使用Python現在的代碼了。這是迄今爲止我所擁有的,但它不起作用,因爲沒有頻率排序。
def order(word):
word = word.lower()
storage = [0] * 26
for c in word:
storage[ord(c) - 97] += 1
newWord = []
for l, c in enumerate(storage):
for i in range(0, storage[l]):
newWord.append(chr(l + 97))
return ''.join(newWord)
有關如何最有效地正確實施此算法的任何建議?