大数加法
· 约 1 分钟阅读 · – 次阅读
leetcode
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。
示例 1:
输入:num1 = “11”, num2 = “123” 输出:“134” 示例 2:
输入:num1 = “456”, num2 = “77” 输出:“533” 示例 3:
输入:num1 = “0”, num2 = “0” 输出:“0”
大数加法
模拟的思路
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
if not num1:
return num2
if not num2:
return num1
i = len(num1)-1
j = len(num2)-1
carry = 0
result = ""
while i >= 0 or j >= 0 or carry:
if i >= 0:
first = num1[i]
else:
first = 0
if j >= 0:
second = num2[j]
else:
second = 0
# print('i, j', i, j)
# print('first, second, carry', first, second, carry)
tmp = int(first) + int(second) + carry
result = str(tmp%10) + result
carry = tmp // 10
i = i - 1
j = j - 1
return result