input_string = "foobaarfoooobaaaarfo"
count_dict = {}
for char in input_string:
try:
count_dict[char]=count_dict[char]+1
except:
count_dict[char]=1
print(count_dict)
对于给定的问题陈述,这是复杂度为O(N)的最佳算法
答案 0 :(得分:2)
是的,O(n)
是您可以做的最好的事情。
有必要拜访每个角色以数一数。
但是,在python实现方面,您可以使用专门的集合Counter
获得更好的性能和更易读的代码:
from collections import Counter
input_string = "foobaarfoooobaaaarfo"
counter = Counter(input_string)
print(counter)
答案 1 :(得分:2)
我同意O(N)
是您所能做的最好的事情。
我为您的程序做了简化。您不必在此处使用try和引发异常。
input_string = "foobaarfoooobaaaarfo"
count_dict = {}
for char in input_string:
count_dict[char] = count_dict.get(char, 0) + 1
print(count_dict)