415-字符串相加

415、字符串相加

题目:

https://leetcode-cn.com/problems/add-strings/

UofL60.png

题解:

此题关键是如何处理长整数的存储,使用字符串转数字的方法直接处理肯定会溢出,因为题目规定字符串numX长度<=5100,这种大数无法直接存储,所以要求返回字符串。因此需要在不断计算的过程中,一位一位的加入字符串数组。

计算的方式就是模拟人脑计算的方式,从尾巴开始双指针计算,并记录进位。比较简单。重点就在于字符转换和拼接,对于python来说很方便。

重点处理过长大数,模拟人脑双指针运算,字符串拼接

1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
res = ""
i, j, carry = len(num1) - 1, len(num2) - 1, 0
while i >= 0 or j >= 0:
n1 = int(num1[i]) if i >= 0 else 0
n2 = int(num2[j]) if j >= 0 else 0
tmp = n1 + n2 + carry
carry = tmp // 10
res = str(tmp % 10) + res
i, j = i - 1, j - 1
return "1" + res if carry == 1 else res

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器