【发布时间】:2016-09-05 17:57:01
【问题描述】:
我会编写一个程序来打印 s 的最长子字符串,其中字母按字母顺序出现。例如s = 'azcbobobegghakl'
将打印出'beggh'。
s = 'azcbobobegghakl'
result = ''
word ='a'
sen = ''
for alpha in s:
if alpha < word:
word ='a'
sen = ''
if alpha >= word:
word = alpha
sen += alpha
if len(result) <len(sen):
result = sen
print('Longest substring in alphabetical order is: '+ result)
答案是
Logest substring in alphabetical order is: beggh
但只需将代码放在不同的行上。我答错了!!!
s = 'azcbobobegghakl'
result = ''
word ='a'
sen = ''
for alpha in s:
if alpha >= word:
word = alpha
sen += alpha
if len(result) <len(sen):
result = sen
if alpha < word:
word ='a'
sen = ''
print('Longest substring in alphabetical order is: '+ result)
回答
Longest substring in alphabetical order is: eggh
这个问题把我逼疯了!!!
【问题讨论】:
-
如果
alpha < word为真,那么您设置word = 'a'。因此,alpha >= word也将为 True。但是如果你交换两个ifs,情况就不是这样了,所以你最终会跳过第一个字符。 -
哦,谢谢你!!!我明白了!!!
标签: python