我的作业存在以下问题:
编写一个程序,打印
s
的最长子字符串,其中字母按字母顺序出现。例如,如果s = azcbobobegghakl
,那么您的程序应该打印:Longest substring in alphabetical order is: beggh
我为此问题编写的代码是:
s = 'azcbobobegghakl'
current_index = 1
first_index = 0
result_string = ''
current_string = s[first_index]
while current_index < len(s):
if ord(s[first_index]) <= ord(s[current_index]):
current_string += s[current_index]
elif ord(s[current_index]) < ord(s[first_index]):
current_string = ''
if len(current_string) > len(result_string):
result_string = current_string[:]
current_index += 1
first_index += 1
print('Longest substring in alphabetical order is: ' + result_string)
代码没有给出正确的结果,出于某种原因,它会提供eggh
而不是beggh
。
由于这是一项任务,我不会要求你给我更正的代码,但只是给我一个关于我错在哪里的提示,因为我想通过MYSELF解决我的问题并且不想作弊。
感谢。
答案 0 :(得分:1)
错误在这里:
current_string = ''
当你找到s[current_index]) < s[first_index]
时,你不应该清除它。
ord
。s='a'
会怎样?result_string = current_string[:]
,因为字符串是不可变的提示OVER; P