代码应该按字母顺序返回最长的字符串。对于这个字符串,它应该是' beggh'。我需要帮助来确定问题。
编辑:复制上批准的答案无效。我不确定这是因为这是在python 3而不是2或什么。旧代码在我的下方。
s = 'azcbobobegghakl'
temp_s = ''
startingChar = 0
currentChar = 0
endingChar = 1
for x in range(len(s)-1):
if s[endingChar] >= s[currentChar]:
temp_s = s[startingChar:endingChar+1]
endingChar += 1
currentChar += 1
else:
startingChar += 1
endingChar += 1
currentChar += 1
print('Longest substring in alphabetical order is: ', temp_s)
这是旧代码:
s = input('enter characters: ')
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
答案 0 :(得分:-2)
我认为ord()可能对你有所帮助。
例如ord('a')= 97.要使'a'具有第一个值,请考虑使用ord('a') - 96.获得'b'的值将是相似的,即。 ord('b') - 96。
然后遍历字符串,检查字符串中下一个值的ord()是否等于或大于前一个值。