我想要做的是获取s中最长的子字符串,其中字母按字母顺序出现。
出于某种原因,alphasub最后没有字符串,我不知道为什么
start = 0
sub = 1
maxsub = 0
current = 0
s = 'azcbobobegghakl'
leng = len(s)
for i in range(leng):
if i != leng - 1:
if s[i] <= s[i+1]:
current = i
sub = 1
while current < (leng-1):
if s[current] <=s [current+1]:
sub += 1
current += 1
else:
break
if(sub>maxsub):
maxsub = sub
start = i
alphasub = s[start:maxsub]
print("longest substring is: " + alphasub)
答案 0 :(得分:0)
使用print
检查代码是一种很好的做法。
我在你的代码末尾添加了一些打印件,如下所示:
print(s)
print(start)
print(maxsub)
alphasub=s[start:maxsub]
print ("longest substring is: " + alphasub)
哪个输出:
azcbobobegghakl
7
5
longest substring is:
从7开始,到5结束,显然不起作用。
答案 1 :(得分:0)
字符串切片采用起始位置和结束位置。 https://docs.python.org/2/tutorial/introduction.html
将alphasub = s [start:maxsub]更改为alphasub = s [start:start + maxsub]。你应该看到预期的输出。