加一

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

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

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

示例 1:

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

示例 2:

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


观察题目,认真读题:头一次感觉这么简单,给一个数组,使其末位加1。

最傻子的思考方法,dights[-1] + 1

那就出事了,有个东西叫做进位。

判断-1位是不是9,如果是-1位变成0,-2位+1,但如果-2位也是9,这个数就是99999,那么这样太繁琐了。

这道题传入的是一个列表,要返回的也是一个列表。

列表不能转化为int,但是转化为字符串还是可以,字符串转数字,数字+1,在转成列表。

首先转换为字符串,平时用join方法。''.join(a)就可以了,不支持数字

那么就换个方法,将列表的每一个元素变成字符串相加     b =  ''

for i in a:

    b += str(i)         完成列表转字符串,    int(b) + 1 字符串变成数字然后+1

这道题声明了非负整数,用int方法也可以处理负数,如字符串A= ‘-5’   int(A)=-5

再将数字转换从列表,数字不能遍历,但是字符串可以遍历,再将数字+1后转换为字符串,遍历字符串,每一个元素添加至一个空列表。

    其实字符串可以直接转化为列表,直接写

return list(str(num))就完事了

对于末尾加1进位的方法暂不做考虑了,目标不是学习算法,而是熟练掌握语言。

你可能感兴趣的:(加一)