尝试制定一种算法来检查字符串,然后输出最长的子字符串

时间:2019-06-18 07:31:42

标签: python algorithm computer-science longest-substring

唯一的不足是必须按字母顺序排列:unicode值大于前一个字符。如果我有一个字母为“ owdnloquxat”的字符串,则它将仅显示“ loqux”,因为这是字母顺序最长的子字符串。

我已经尝试过此代码。但是,在这种情况下,它仅打印“ az”,但应打印“ beggh”

s = 'azcbobobegghakl'
sList = list(s)

sub = s[0]

long, lenght = sub, 1

for i in s[1:]:
    if ord(sub[-1]) <= ord(i):
        sub += i
    print(sub)

我对python还是很陌生,但是需要完成本课程。如果您想给出答案,那很好。提示也可以,因为我想学习。

1 个答案:

答案 0 :(得分:0)

这里是一个。

s = 'azcbobobegghakl'

c = s[0]
best = ""
for i in s[1:]:
    if i >= c[-1]:
        c += i
    else:
        if len(c) > len(best):
            best = c
        c = i

if len(c) > len(best):
    best = c


print(best)