何千もの数字を含む文字列があります。文字列を調べて、番号順に並べられた最長の文字セットを見つける必要があります。例えば:
string = '1223123341223455'
その文字列の中で最も長い文字列は 1223455 で、長さは 7 文字です。現時点で私が持っているものの例を次に示します。
r=r2=''
a=b=0
while a < len(string)+1:
if string[a] <= string[b]:
r += string[a]
else:
if len(r) < len(r2):
r = r2
a += 1
b += 1
これにより、文字列インデックスが行の範囲外であることがわかります。
if string[a] <= string[b]
これが私の論理です。最初の数値が 2 番目の数値以下かどうかを確認します。そうである場合、それらの 2 つの数値は番号順に並んでいます。その最初の数値を空の文字列に追加します。最初の数値が 2 番目の数値よりも大きくなるまで、これを続けます。この時点に達したら、取得したものを文字列として保存し、中断したところから続行します。ただし、今回は、累積した数値を別の文字列に連結します。2 つの数字列ができたら、2 つを比較して、大きい方を取得します。文字列の処理が完了するまでこれを続けます。これが理にかなっているといいのですが、説明するのは難しいです。