-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' –