>> count("bc","abcabcabc") 3 """ counter = 0 -6ren">
gpt4 book ai didi

python - count字符串函数的时间和空间复杂度是多少

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:50:18 32 4
gpt4 key购买 nike

def count(substring, string):
"""
>>> count("bc","abcabcabc")
3
"""
counter = 0
for i in range(len(string) - len(substring) + 1):
counter += string.startswith(substring, i)

return counter

这是一个计算子字符串在基础字符串中出现的次数的函数。我认为时间复杂度是 O(n) 因为我只迭代字符串一次。我认为空间复杂度也是 O(n),因为我在循环中递增了 N 次计数器。有人可以告诉我我是对还是错吗?

最佳答案

由于您提供的原因,时间复杂度为 O(nm),其中 n=len(s) 和 m=len(t),但递增 counter 不会导致占用更多空间,所以这个函数的空间复杂度是 O(1)。无论输入字符串有多长,您仍然只存储一个变量,count

[编辑以更正海报指出的严重错误]

关于python - count字符串函数的时间和空间复杂度是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452362/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com