擅长:python、mysql、java
<p>给你。这是你想要的。一次通过,不需要递归。</p>
<pre><code>def find_longest_substring_in_alphabetical_order(s):
groups = []
cur_longest = ''
prev_char = ''
for c in s.lower():
if prev_char and c < prev_char:
groups.append(cur_longest)
cur_longest = c
else:
cur_longest += c
prev_char = c
return max(groups, key=len) if groups else s
</code></pre>
<p>使用它:</p>
<pre><code>>>> find_longest_substring_in_alphabetical_order('hixwluvyhzzzdgd')
'luvy'
>>> find_longest_substring_in_alphabetical_order('eseoojlsuai')
'jlsu'
>>> find_longest_substring_in_alphabetical_order('drurotsxjehlwfwgygygxz')
'ehlw'
</code></pre>
<p><strong>注意:</strong>它可能会在奇怪的字符上断开,只使用您建议的输入进行了测试。既然这是一个“家庭作业”问题,我会给你留下原样的解决方案,虽然还有一些优化要做,我想让它有点可以理解。</p>