私は一般的にコーディングするのが初めてで、edXプラットフォームで勉強しています。最初の割り当ての1つは、指定された文字列に最長のアルファベットの部分文字列を出力するコードを書くことです。Pythonで与えられた文字列の最長アルファベット部分文字列を出力する方法は?
私はインターネット上のいたる所を探してみましたが、私が見つけることができるのは固定の答えであり、なぜ私のコードは機能しません。それは私の頭の中で理にかなっているので、私はいくつかの理由を理解するために助けたい。
CODE:
s = 'abcdszabc'
start = 0
end = 0
a = ''
b = ''
while len(b) < len(s[start:]):
while s[end] <= s[end+1]:
end += 1
a = s[start:end+1]
if a > b:
b = a
print(b)
start += 1
end = start
私はそれを主張し、エラーを取得し実行すると:
while s[end] <= s[end+1]:
IndexError: string index out of range
最初しばらくは行く前に、B列の大きさを評価すべきであるので、それは意味がありません。 2番目の時間に。私のケースでは、最初の試行ではbに 'abcdsz'が割り当てられ、6文字未満のとき(最初の試行ではポイントがないため)、プログラムは最初にループを停止する必要があります。
誰も私にストレートなソリューションを与えないで私を啓発してもらえますか?私はスポイラーなしで私自身でそれを解決するために最善を尽くしています!
エラーの時点で 's'と' end'の値はどうですか? – Prune