-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
@Torxed - 学校の割り当てが無関係であるかどうかに関わらず、重要なことは質問が[ask]ガイドラインに従うことだけです。 – Sayse
また、質問は時間の複雑さに関するものなので、時間の複雑さの計算とその正確な問題は何ですか?ヒント:あなたは3つのforループを使用していますが、そのうち2つは 'n 'に行きます –