我有一个包含数千个数字的字符串。我需要遍历字符串并找到按数字顺序排列的最长字符集。例如:
string = '1223123341223455'
该字符串中按数字顺序排列的最长字符串为 1223455,长度为 7 个字符。这是我目前拥有的示例:
r=r2=''
a=b=0
while a < len(string)+1:
if string[a] <= string[b]:
r += string[a]
else:
if len(r) < len(r2):
r = r2
a += 1
b += 1
有了这个,它告诉我字符串索引超出了行的范围:
if string[a] <= string[b]
这是我的逻辑:检查第一个数字是否小于或等于第二个数字。如果是,这两个数字是按数字顺序排列的。将第一个数字添加到空字符串。继续这样做,直到遇到第一个数字大于第二个数字的点。达到这一点后,将您拥有的内容保存为字符串并从上次中断的地方继续,除了这次将您累积的数字连接到不同的字符串。得到两串数字后,比较两者并取较大的一个。继续此操作,直到您处理完字符串。我希望这是有道理的,有点难以解释。