2016-09-08 14 views
0

私は知っています、この質問は以前に何度も聞かれました。しかし、私はここでそれを修正する方法を見つけることができません - この特定の例では。 2を減算すると、これは推奨されたものですが、if文でも同じエラーが発生します。ありがとう コードは文字列 "s"を取り、それをアルファベット "order"に対して測定し、次にアルファベット順のsで最長部分文字列の出力を与えます。あなたがsリストにアクセスするためにorderリストのインデックスjを使用しているためであるPython: "IndexError:文字列インデックスが範囲外です"初心者

order = "abcdefghijklmnopqrstuvwxyz" 
s = 'abcbcdabc' 
match = "" 

for i in range(len(s)): 
for j in range(len(order)): 
    if (((i + j) - 2) < len(order) and order[i] == s[j]): 
     match += s[i] 

print("Longest substring in alphabetical order is: " + match) 
+1

's'とは何ですか?そして、あなたは正確に何をしようとしていますか?あなたはあなたの問題を要約し、入力例と予想される出力を表示できますか? – CoryKramer

+0

コードは文字列を取り、それが他の文字列(順序)と共通に持つ最も長い文字列を見つけ、出力が最も長い一致文字列であると考えられます。コードの残りの部分でメインコードを編集します – RepubFactor

答えて

2

jlen(s)、したがってIndexErrorより大きい可能性があります。

コードで達成しようとしていることはわかりません。しかし、いずれにしても、あなたはそれを有効にするために何が変わるかを知っています。

+0

問題は実際にifステートメント内です。明確にしないで申し訳ありません。 – RepubFactor

+0

はい。私はそれを見逃したようだ。指摘してくれてありがとう。 – stuartnox

関連する問題