動機
就之前的add two number
Problem
Given two non-negative integers, num1
and num2
represented as string, return the sum of num1
and num2
as a string.
You must solve the problem without using any built-in library for handling large integers (such as BigInteger
). You must also not convert the inputs to integers directly.
Example 1:
Input: num1 = "11", num2 = "123"Output: "134"
Example 2:
Input: num1 = "456", num2 = "77"Output: "533"
Example 3:
Input: num1 = "0", num2 = "0"Output: "0"
Constraints:
- t
1 <= num1.length, num2.length <= 104
tnum1
andnum2
consist of only digits. tnum1
andnum2
don't have any leading zeros except for the zero itself.
Sol
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
a = num1[::-1]
b = num2[::-1]
def add(a,b,carry=0):
if not a and not b:
return "" if carry == 0 else str(carry)
elif not a:
return add(b,a,carry)
elif not b:
if carry == 1:
return add(a,b+str(carry),0)
else:
return a
else:
tmp = int(a[0])+int(b[0])+carry
return str(tmp%10)+add(a[1:],b[1:],tmp//10)
return add(a,b)[::-1]