方法一:模拟法,双指针
思想:从字符串末尾开始往前相加,模拟加法
进位:sum // 10
和:sum = n1 + n2 +carry
相加的结果:res = str((sum) % 10) + res
关键:当两个字符串长度不相等,给短的字符串前端添加0之后再对位相加
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
carry = 0
i = len(num1) - 1
j = len(num2) - 1
res = ""
while i >= 0 or j >= 0:
n1 = int(num1[i]) if i >= 0 else 0
n2 = int(num2[j]) if j >= 0 else 0
sum = n1 + n2 + carry
carry = sum // 10
res = str((sum) % 10) + res
i -= 1
j -= 1
# if carry:
# return "1" + res
# else:
# return res
return "1" + res if carry else res