• 66. 加一


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

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

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

    • 示例 1:

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

    • 示例 2:

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

    • 分析:

    此题主要考察对于一串数字123, 如何实现给其个位数加一

    1. 可以将数字看做一串字符串,每次遍历,就将字符串拼接起来,最后转换字符串格式为整形并加一,再次遍历字符串,实现题目要求
    2. 遍历列表,首先获取其个位数的数值,若个位数的值小于9, 则将个位数的值加一,若个位数的值=9, 则将个位数的值赋值为0, 并将十位数的值加1, 以此类推。 对于只有一个个位数的列表,则直接将个位数置0, 并将十位数由0变1
    • 解法1:
    class Solution(object):
        def plusOne(self, digits):
            """
            :type digits: List[int]
            :rtype: List[int]
            """
    		tmp = ""
            for i, num in enumerate(digits):
                tmp = tmp + str(num)
            num = str(int(tmp) + 1)
            return [int(digit) for digit in num]
    
    
    • 解法2:
    class Solution(object):
        def plusOne(self, digits):
            """
            :type digits: List[int]
            :rtype: List[int]
            """
            
            tmp_list = []
            for index, num in enumerate(digits):
                tmp_list.append(str(num))
            total_num = ''.join(tmp_list)
            total_num = str(int(total_num) + 1)
            return [int(d) for d in total_num]
    
    
    • 解法3:
    
    class Solution(object):
        def plusOne(self, digits):
            """
            :type digits: List[int]
            :rtype: List[int]
            """
            for i in range(len(digits)-1, -1, -1):
                if digits[i] < 9:
                    digits[i] += 1
                    return digits
                digits[i] = 0
            str = [0] * (len(digits) + 1)
            str[0] = 1
            return str
    
  • 相关阅读:
    Python入门系列——第17篇
    Python入门系列——第16篇
    Python入门系列——第15篇
    Python入门系列——第14篇
    Python入门系列——第13篇
    Python入门系列——第12篇
    python入门系列——第11篇
    Python入门系列——第10篇
    Python入门系列——第9篇
    Python入门系列——第8篇
  • 原文地址:https://www.cnblogs.com/AimeeCodeWorld/p/10803208.html
Copyright © 2020-2023  润新知