我试图弄清楚如何将字符串中的字符与字符串中的下一个字符进行比较。例如,如果我有一个字符串:
s = 'vzcbotdebobeggglakyl'
我希望能够将第一个字符与第二个字符进行比较,如果第二个字符大于或等于第一个字符(按字母顺序,a < b、g > e、y = y 等)我想将 1 添加到另一个变量(基本上是一个计数器)。如果不是,我想将计数器重置为 0。基本上对字符串的长度重复整个过程。如果计数器变得大于 maxlen 变量,则将 maxlen 加一(或使 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.