汇芳书院

专注计算机视觉、机器学习、分布式计算等领域, 兼聊投资、写作、生活

0%

大数加法

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

 

示例 1:

输入:num1 = “11”, num2 = “123”
输出:”134”
示例 2:

输入:num1 = “456”, num2 = “77”
输出:”533”
示例 3:

输入:num1 = “0”, num2 = “0”
输出:”0”


大数加法

模拟的思路

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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


坚持原创分享,您的支持将鼓励我继续创作

欢迎关注我的其它发布渠道

------------- 本文结束,感谢阅读 如有问题可留言交流 -------------