初学者python程序辅助

时间:2016-09-07 01:22:28

标签: python loops

代码应该按字母顺序返回最长的字符串。对于这个字符串,它应该是' 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

1 个答案:

答案 0 :(得分:-2)

我认为ord()可能对你有所帮助。

例如ord('a')= 97.要使'a'具有第一个值,请考虑使用ord('a') - 96.获得'b'的值将是相似的,即。 ord('b') - 96。

然后遍历字符串,检查字符串中下一个值的ord()是否等于或大于前一个值。