我是编程新手,我开始在LeetCode中进行训练,我遇到了一些在我的spyder环境中有效但平台丢弃的问题,一个例子是66。加一(https://leetcode.com/problems/plus-one /):
我尝试这样解决:
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
rev = digits[::-1]
no = 0
while no<len(digits)-1:
if rev[no]==9:
rev[no]=0
no+=1
else:
rev[no]+=1
break
if rev[-1]==0:
rev.append(1)
else:
pass
digits = rev[::-1]
return digits
此代码适用于spyder,更改了 print() 的返回值,并且我没有包含类或函数,仅包含函数体。谁能告诉我出了什么问题吗?
您的循环在到达最后一位数字之前终止一次迭代。因此,如果最后一位数字是 9 并且需要递增,则不会对其进行处理。 您需要将 while 循环的条件更改为:
while no < len(digits):
或者这个:
while no <= len(digits) - 1: