擅长:python、mysql、java
<p>您应该传递整数列表,而不是传递字符串:</p>
<pre><code>def sumDigits(l1):
if len(l1) > 1:
a = l1.pop()
b = l1.pop()
l1.append(a+b)
return sumDigits(l1)
else:
return l1[0]
print sumDigits([2,3, 4])
print sumDigits([2, 3, 4, 3, 4, 3, 6, 4, 3, 2, 4, 2, 4])
</code></pre>
<p>你的方法的问题是:</p>
<p><code>'23434364324|24|'</code>->;<code>'2343436432|46|'</code>->;<code>'2343436432 | 10'</code></p>
<p>现在pop将返回<code>0</code>和<code>1</code>,而不是您所期望的<code>2</code>和<code>10</code>。因此输出错误。你知道吗</p>
<p><strong>简单解决方案:</strong></p>
<pre><code>>>> s = '2343436432424'
>>> sum(int(x) for x in s)
44
</code></pre>