我要做的是做一个嵌套循环,实现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次的所有字符。

08-04 04:54
查看更多