【发布时间】:2017-07-02 12:10:34
【问题描述】:
我正在做的练习的重点是编写一个程序来打印s 的最长子字符串,其中字母按字母顺序出现。
例如,如果s = 'azcbobobegghakl',那么你的程序应该打印:
按字母顺序排列的最长子串是:beggh
在平局的情况下,打印第一个子字符串。例如,如果s = 'abcbcd',那么你的程序应该打印:
按字母顺序排列的最长子串是:abc
我已经运行了测试,它适用于我输入的大多数字符串,但是这个有问题。
在第 15 步,它应该比较 2 > 0 这是真的,但它不执行,
有人可以解释一下吗?我在哪里做错了?
我的代码如下所示:
s = 'zodworqozid'
curstring = [0]
longest = [0]
for i in range(1,len(s)):
if s[i] >= str(curstring[-1]):
curstring+= s[i]
if len(curstring) > len(longest):
longest = curstring
else:
curstring = s[i]
print('Longest substring in alphabetical order is:', longest)
【问题讨论】:
-
len([0]) = 1- 如果你想初始化一个空列表,你应该使用longest = []
标签: python string if-statement edx