Я пытаюсь выяснить, какова будет временная сложность, если я пытаюсь найти строку B в A в Python?Я понимаю, что он отличается для списков / словарей и т. Д. Я также знаю его O (n) для списков.так ли это для строки?Будет ли сложность O (len (b) * len (A)?
Вот проблема, над которой я работаю: Вопрос: Учитывая две строки A и B, найдите минимальное число раз, когда A должно бытьповторяется так, что 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