Python for STRINGS中“ in”函数的时间复杂度是多少?

时间:2019-02-12 07:17:23

标签: python time-complexity

如果要在Python中的A中寻找字符串B,我想找出时间复杂度是多少? 我了解列表/字典等的不同。我也知道列表的O(n)。字符串也一样吗?复杂度是否为O(len(b)* len(A)?

这是我正在研究的问题: 问题:给出两个字符串A和B,找出必须重复的最小次数,以使B是它的子字符串。如果没有这样的解决方案,则返回-1。

例如,在A =“ abcd”和B =“ cdabcdab”的情况下,返回3,因为重复三遍A(“ abcdabcdabcd”),B是它的子字符串;并且B不是重复两次的A的子字符串(“ abcdabcd”)。

我在Python中的代码如下:

if B in A:
    return 1        

lenB=len(B)
lenA=len(A)
n=lenB+lenA
output=''

while n>1:
    output+=A
    n-=lenA


if B in output[:len(output)-lenA]:
    return (len(output)-lenA)/lenA
elif B in output:
    return len(output)/lenA
else:
    return -1

0 个答案:

没有答案