-4
给出一段以空格分隔的小写英文单词和一列唯一的小写英文关键字,找到其中包含按任意顺序以空格分隔的所有关键字的最小字符串长度。如何降低python的时间复杂度?
我把下面的代码错误在哪里?我如何减少时间复杂度。
import sys
def minimumLength(text, keys):
answer = 10000000
text += " $"
for i in xrange(len(text) - 1):
dup = list(keys)
word = ""
if i > 0 and text[i - 1] != ' ':
continue
for j in xrange(i, len(text)):
if text[j] == ' ':
for k in xrange(len(dup)):
if dup[k] == word:
del(dup[k])
break
word = ""
else:
word += text[j]
if not dup:
answer = min(answer, j - i)
break
if(answer == 10000000):
answer = -1
return answer
text = raw_input()
keyWords = int(raw_input())
keys = []
for i in xrange(keyWords):
keys.append(raw_input())
print(minimumLength(text, keys))
这有一所学校分配的所有特征。这些类型的问题通常不受欢迎。如果您要发布代码,请提供代码无效的原因。谢谢。 – Torxed
@Toxxed - 无论其学校任务是否无关紧要,重要的是在[问]指导方针之后提出一个问题。 – Sayse
另外,由于问题是关于时间复杂度的,您能向我们展示您对时间复杂性的计算以及您的具体问题吗?提示:你正在使用三个for循环,其中两个循环要去'n' –