我将尝试解释如何比较字符串中的字符和下一个字符。例如,如果我有一个字符串:
s = 'vzcbotdebobeggglakyl'
我希望能够比较字符串的第一个字符和第二个字符,如果第二个字符大于等于第一个字符(按字母顺序排序,a < b,g > e,y = y等),我想要将另一个变量(基本上是计数器)加1。如果不是,则将计数器重置为0。并在整个过程中重复此过程。如果计数器变得大于maxlen变量,则将maxlen加1(或使maxlen=sublen)。我迄今为止的尝试是(我认为它正在工作):
s = 'vzcbotdebobeggglakyl'
sublen = 1
maxlen = 0
startnum = 0
for char in s:
stopnum = startnum + 1
if stopnum < len(s):
charone = s[startnum]
chartwo = s[stopnum]
if charone <= chartwo:
sublen += 1
startnum += 1
if sublen > maxlen:
maxlen = sublen
else:
startnum +=1
sublen = 1
else:
sublen = 0
print 'Longest substring is', maxlen, 'characters.'
现在,我还想要打印出这个子字符串。我已经花了五个小时来尝试,但是一直没有成功。我尝试了很多不同的方法,现在比起刚开始时更加困惑了。在上面的例子中,我想要它输出:
Longest substring is begggl, which is 6 characters.
begggl
但g
不是 大于g
... :) - Jon Clements