【题目描述】
【一】将list中的数字拼接成一个数字,让int类型数字自身完成加1操作之后,再转换为list返回。比如[1,2,3]转换成数字123,完成加一变成124再转换回列表。
利用python中的join函数,先保存成字符串类型,再强制转换为整型,
num=''.join(str(i) for i in digits)
复制代码
【完整源代码】
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
num=''.join(str(i) for i in digits)
digits=[int(i) for i in str(int(num)+1)]
return digits
复制代码
【二】
从后向前遍历列表,从后向前看是否需要进位,需要的话就执行循环继续向前,无需进位的话就break结束循环。特别之处是对于,当列表中第一个数字需要再进一位时,在列表的第一个位置插入一个1,用digits.insert(0,1)实现。
【完整源代码】
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
for i in range(-1,-len(digits)-1,-1):
if digits[i]+1>=10:
digits[i]=(digits[i]+1)%10
if i==-len(digits):digits.insert(0,1)
else:
digits[i]+=1
break
return digits
复制代码