我知道以前有人问过这个问题,但我正在努力找出我的代码有什么问题。 我应该按字母顺序打印最长的子字符串。 这是我在Python2.7中的代码 https://ideone.com/SXQGdd
s='abc'
b=[]
count=1
j=0
for i in range(0,len(s)-2):
if(s[i]<=s[i+1]):
count=count+1
if(i==(len(s)-2)):
x=s[j:(j+count)]
b.append(x)
break
if(s[i]>s[i+1]):
x=s[j:(j+count)]
b.append(x)
continue
max_length=len(b[0])
elem=b[0]
for i in range(0,len(b)-1):
if(len(b[i+1])>max_length):
max_length=len(b[i+1])
elem=b[i+1]
print"Longest substring in alphabetical order is:",elem
错误如下:
IndexError: list index out of range
索引器在
20: len(b[0])
行中引发,因为b为空,因为ifi == len(s)-2
从不为真,因为range不包含端点。参考@swenzel在您的第一个for循环中,您的逻辑没有正确发生,并且超过了索引值。这就是为什么你会收到错误信息。你知道吗
我刚换了你的第一圈。所以,你可以试试这个。没事的
输出:
相关问题 更多 >
编程相关推荐