擅长:python、mysql、java
<p>如前所述,regex不是最好的工具。由于您对连续序列感兴趣,因此可以使用单个for循环来执行此操作:</p>
<pre><code>def LNDS(s):
start = 0
cur_len = 1
max_len = 1
for i in range(1,len(s)):
if ord(s[i]) in (ord(s[i-1]), ord(s[i-1])+1):
cur_len += 1
else:
if cur_len > max_len:
max_len = cur_len
start = i - cur_len
cur_len = 1
if cur_len > max_len:
max_len = cur_len
start = len(s) - cur_len
return s[start:start+max_len]
>>> LNDS('abcghiijkyxz')
'ghiijk'
</code></pre>
<p>我们保持一个运行的总数,我们看到了多少非递减字符,当非递减序列结束时,我们将其与我们之前看到的最长的非递减序列进行比较,如果它更长,则更新我们的“迄今为止最好看的”。在</p>