Algorithm 按字母出现的顺序对字符串中的字母进行排序?

Algorithm 按字母出现的顺序对字符串中的字母进行排序?,algorithm,Algorithm,按字母在线性时间内出现的顺序对字符串中的字母进行排序是否可行 例如,孩提时代将排序为boooyhd是的,这里有一个python中的O(2n)解决方案: import sys word = raw_input("Enter string to sort:") wordDict = {} for letter in word: if letter in wordDict: wordDict[letter] = wordDict[letter] + 1 else:

按字母在线性时间内出现的顺序对字符串中的字母进行排序是否可行

例如,
孩提时代
将排序为
boooyhd

是的,这里有一个python中的O(2n)解决方案:

import sys

word = raw_input("Enter string to sort:")
wordDict = {}

for letter in word:
    if letter in wordDict:
        wordDict[letter] = wordDict[letter] + 1
    else:
        wordDict[letter] = 1

for letter in word:
    sys.stdout.write(letter*wordDict[letter])
    wordDict[letter] = 0

是的,有点。遍历字符串,计算每个字符的出现次数(线性)。再次遍历,当您遇到一个字母时,从计数中复制N次,然后将该计数设置为0。