我要做的是做一个嵌套循环,实现O(n^2)
时间。我的问题是,是否有更好的解决方案可以减少时间复杂度?
最佳答案
是的,这可以在O(n)
中完成。你只需要一个所有字符的散列(甚至可以是一个数组)。在字符串上迭代时,会增加找到的字符数。
然后在最后遍历散列并输出所有键,其值等于k
。
以及python中的几行代码
def func(s, k):
from collections import Counter
h = Counter(s)
return [i for i in h if h[i] == k]
这将返回字符串
k
中出现s
次的所有字符。