为什么我的代码在spyder上可以运行,但LeetCode输出却是错误的?

问题描述 投票:0回答:1

我是编程新手,我开始在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() 的返回值,并且我没有包含类或函数,仅包含函数体。谁能告诉我出了什么问题吗?

python spyder review
1个回答
0
投票

您的循环在到达最后一位数字之前终止一次迭代。因此,如果最后一位数字是 9 并且需要递增,则不会对其进行处理。 您需要将 while 循环的条件更改为:

while no < len(digits):

或者这个:

while no <= len(digits) - 1:
© www.soinside.com 2019 - 2024. All rights reserved.