擅长:python、mysql、java
<p>将<code>while(i <= len(s):</code>更改为<code>while(i < len(s)):</code>,或更改为<code>while(i <= len(s)-1):</code></p>
<p>在Python中,字符串是一个一维字符数组。Python编程中的索引从0开始。这意味着<em>any</em>字符串的<strong>最大索引将始终<em>为len(s)-1。在您的代码中,<code>i</code>最终将等于<code>len(s)</code>,这比最大值高一个元素。</p>
<p>另外,在代码中使用<code>for</code>循环而不是<code>while</code>循环可能是有益的。您的代码可以替换为:</p>
<pre><code>s = 'aba'
letter = ''
substring = ''
i = 0
for i in range(len(s)):
prev_letter = s[0]
letter = s[i]
if letter <= prev_letter:
substring += letter
prev_letter = letter
</code></pre>