除了需要最后一个字符的字符串外,这段代码对所有字符串都适用。在
s='abcdefghijklmnopqrstuvwxyz'
sub =''
test =s[0]
for n in range(len(s)-1):
if len(test) > len(sub):
sub = test
if s[n] >= s[n-1]:
test += s[n]
else:
test = s[n]
print 'Longest substring in alphabetic order is: ' + str(sub)
你怎么建议这样做的可能性?在
提前谢谢各位!在
附言:
谢谢你的回答。问题是,无论我输入哪个范围,我要打印的子变量都不能得到我想要的所有字符。循环在之前结束:\n可能是程序本身的问题。在
有什么额外的提示吗?:)
您
enemurate
而不是范围:您的问题在于
range(len(s)-1)
。不需要使用len-1来减去它的值,所以不需要使用len-1的上限值:来自https://docs.python.org/2/library/functions.html#range
另一方面,您将问题标记为python2.7,所以我假设您使用的是2.7。如果是这样,那么使用
xrange
而不是range
更有效,因为这样您将使用迭代器而不是生成列表。在编辑
根据此问题的注释,您可以将代码更改为:
^{pr2}$您可以使用以下代码:
还有几点建议。在
相关问题 更多 >
编程相关推荐