第五天 Plus One
2018-08-25 本文已影响5人
业余马拉松选手
第五天,周末,坚持不易
今天选择了一道不那么难的题目,就当奖励自己吧:
https://leetcode-cn.com/problems/plus-one/description/
最直接想的方法,就是在原来数组上遍历直接操作,但想了一下,涉及到进位的问题,比如[9,9] 需要变成[1,0,0]。
这样处理起来,会比较复杂。那么为了先把事情解决,就优先想到了数组遍历,然后可以得到一个整数【题目特意提到了Integer,所以就没考虑溢出的问题】。然后直接对整数加一即可。【好吧,这里其实也没考虑溢出的问题】。
这时,接着就是把数字变成一个数组,那么就是取余和整除的方法,还是比较成熟的,最后再返回之前,还需要将这个数组逆置一下。
整体代码的逻辑“平铺直叙”
class Solution:
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
ret = 0
retArray = []
for index,item in enumerate(reversed(digits)):
ret += item * (10**index)
ret += 1
while ret != 0:
retArray.append(ret%10)
ret = ret//10
return retArray[::-1]
今天又用到了两个Python的tips,一个是逆序遍历列表的时候,可以使用reversed函数,接着就是逆序输出列表可以用[::-1]这种方法
最后就是整除需要注意用//
好,今天又刷了一道水题,周日一起整理下吧