1.问题描述:
给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照大小进行排列,最大的数在列表的最前面。(联系LintCode 已更正为最高位在最前面)
2.样例:
给定 [1,2,3]
表示 123, 返回 [1,2,4]
. (样例错误)
给定 [9,9,9]
表示 999, 返回 [1,0,0,0]
.
3.代码:
class Solution:
"""
@param: digits: a number represented as an array of digits
@return: the result
"""
def plusOne(self, digits):
# write your code here
length=len(digits)
num=0
for i in range(length):
num+=digits[i]*(10**(length-i-1))
num+=1
l=[]
while num:
l.append(num%10)
num=num/10
l.sort(reverse=True)
return l
若最高位在前的顺序排序,则修改倒数第二行代码为:l.reverse()。