LeetCode刷题———加一

题目描述:
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
示例 2:

输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。
正确代码:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        s = ''
        list = []
        if digits == [0]:
            return [1]
        else:
            for i in digits:
                s += str(i)
            s = str(int(s)+1)
                
            for i in s:
                list.append(int(i))
            return list
            print(list)
            

运行结果:
LeetCode刷题———加一_第1张图片
思路分析:
首先分为两种情况:非负整数为0的和不为0的,为0是直接返回列表[1];不为0时,把列表转换为字符串,把字符串转换为整数再加一,再把加一后的整数转换为字符串,再把字符串转换为列表,输出列表。以下是调试时的三个错误代码,希望对大家有所启发。
错误代码1:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        s = ''
        list = []
        if digits == [0]:
            return [1]
        else:
            n = digits[-1] + 1
            digits[-1] = n
            for i in digits:
                s += str(i)
                return s
            for i in s:
                list.append(int(i))
                return list

运行结果1:
LeetCode刷题———加一_第2张图片
错误代码2:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        s = ''
        list = []
        if digits == [0]:
            return [1]
        else:
            n = digits[-1] + 1
            digits[-1] = n
            for i in digits:
                s += str(i)
            
            for i in s:
                list.append(int(i))
            print(list)

运行结果2:
LeetCode刷题———加一_第3张图片
错误代码3:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        s = ''
        list = []
        if digits == [0]:
            return [1]
        else:
            n = digits[-1] + 1
            digits[-1] = n
            for i in digits:
                s += str(i)
            
            for i in s:
                list.append(int(i))
            return list
            print(list)

运行结果3:
LeetCode刷题———加一_第4张图片

你可能感兴趣的:(LeetCode刷题———加一)