Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.
You may assume the integer do not contain any leading zero, except the number 0 itself.
The digits are stored such that the most significant digit is at the head of the list.
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
digits = digits[-1::-1]
for index, value in enumerate(digits):
if value < 9:
digits[index] += 1
return digits[-1::-1]
else:
digits[index] = 0
digits.append(1)
return digits[-1::-1]
下面提供另外一种解法,按部就班的操作就好
def my_add(a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
a = int_list(a)
b = int_list(b)
a_len = len(a)
b_len = len(b)
cnt = max(a_len, b_len) - min(a_len, b_len)
if a_len > b_len:
b = add_zero(b, cnt)
else:
a = add_zero(a, cnt)
flag = 0
a = a[-1::-1]
b = b[-1::-1]
print(a, b)
for i in range(len(a)):
if a[i] + b[i] + flag < 2:
a[i] = a[i] + b[i] + flag
flag = 0
elif a[i] + b[i] + flag == 2:
flag = 1
a[i] = 0
else:
flag = 1
a[i] = 1
if flag == 1:
a.append(1)
a = a[-1::-1]
return str_list(a)
def str_list(num_list):
for i in range(len(num_list)):
num_list[i] = str(num_list[i])
return "".join(num_list)
def add_zero(num_list, cnt):
for i in range(cnt):
num_list.insert(0, 0)
return num_list
def int_list(num_str):
num_list = list(num_str)
for i in range(len(num_list)):
num_list[i] = int(num_list[i])
return num_list