我正在尝试编写一种算法,以按频率顺序重新排列字符串中的字母,然后按字母顺序排列。例如,“apple”变成“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)
关于如何最有效地正确实施此算法的任何建议?