一、前记(2/3)

今天尝试了一下将pycharm里面的代码直接传到Github上,还是比较方便的,感觉多了一个生产力!!!(嘿嘿)可惜最近没啥项目可以传到GitHub里面,之前写的大数据网站和python爬虫的东西都删掉了(可惜可惜)。以后会慢慢地写一些大一点的项目,写完之后会传到GitHub上面。

二、题目描述

三、解题思路

1、我的思路

其实我的思路比较简单:list不能直接转化成int。那我先将list转化成str,再将str转换成int。再做一个简单的+1算法,最后int->str->list就完成了。

但在这里我学到了一个非常有意思的函数--map(),这个函数会根据提供的函数对指定序列做映射。格式:map(做什么事情,对象)

参考代码:

#encoding:utf-8
class Solution:
    def plusOne(self, digits):
        num_str = ""
        for i in digits:
            num_str += str(i)

        return list(map(int, str(int(num_str) + 1)))

#as a checking
solution=Solution()
a=[1,2,3]

2、别人的思路

其实别人的思路也还是非常的简单。就是简单的一个从个位开始计算的加法运算。

参考代码:

class Solution(object):
    def plusOne(self, digits):
        # 从-1位到1位
        for i in range(len(digits) - 1, -1, -1):
            # 倒序判断,该位为9则替换为0
            if digits[i] == 9:
                digits[i] = 0
            else:
                # 将前一位加一
                digits[i]+=1
                break
        # 首位为0,进一位
        if digits[0] == 0:
            digits.insert(0,1)
        return digits

#as a checking
solution=Solution()
a=[9]
print(solution.plusOne(a))

四、学到了什么?

1、map(操作,对象)

2、insert(索引,值) --list