私は分かりませんが、文字列s = "azcbobobegghakl"の索引付けは、最長部分文字列アルファベット順。このコードはどのように 'beggh'がアルファベット順であることをコンピュータに伝えますか?索引付けは、文字列内の各文字に文字列が終わるまで1ずつ増やされた数字を与えたと思いましたか?コードをちょっと微調整してもうまくいきましたが、最初のコードの動作を実際には理解していません。Python-Indexing-このコードがどのように動作しているのか分かりません
s = "azcbobobegghakl"
longest = s[0]
current = s[0]
for c in s[1:]:
if c >= current[-1]:
current += c
else:
if len(current) > len(longest):
longest = current
current = c
print "Longest substring in alphabetical order is:", longest
私は非常識なので、これは同等のビッグオーバで楽しい1対1のようです(素朴なソリューションを使用することができれば簡単です):from itertools import chain、groupby'、 'from演算子import itemgetter、le'、 's'を定義すると、その一行は次のようになります:' longest = max(( "join")is_orderedのためのchain(next(g)、map(itemgetter(1)、g))) 、key = lambda p:le(* p))is_orderedの場合、key = len) 'を指定すると、groupby内のg(zip(chain((" '、)、s [: - 1])、s)これは実際には、あなたが 'itertools'と' operator'を使って行うことができる恐ろしい/素晴らしいことを誇示するだけでは、あまり役に立たないことを意図したものではありません。 :-) – ShadowRanger