【发布时间】:2016-09-13 21:18:06
【问题描述】:
此代码查找字符串中最长的字母子字符串 (s)。
letter = s[0]
best = ''
for n in range(1, len(s)):
if len(letter) > len(best):
best = letter
if s[n] >= s[n-1]:
letter += s[n]
else:
letter = s[n]
它大部分时间都有效,但偶尔会给出错误的答案,我很困惑为什么它有时只有效。例如,当:
s='maezsibmhzxhpprvx'
它说答案是“hpprv”,而应该是“hpprvx”。
另外一种情况,当
s='ysdxvkctcpxidnvaepz'
它给出的答案是“cpx”,而它应该是“aepz”。
谁能理解为什么会这样?
【问题讨论】:
-
您的代码运行良好并具有预期的输出。
-
它可以运行,但@EllaP 明确表示它有时并没有达到预期的效果。
-
如果您看到以下带有修复的答案,显然它并不总是具有预期的输出。
标签: python string alphabetical