字符串相加

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

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

1
2
3
4
5
6
7
8
9
10
11
12
示例 1

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

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

输入:num1 = "0", num2 = "0"
输出:"0"

提示:

1
2
3
1 <= num1.length, num2.length <= 104
num1 和num2 都只包含数字 0-9
num1 和num2 都不包含任何前导零
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
30
31
class Solution {
public String addStrings(String num1, String num2) {
int len1 = num1.length();
int len2 = num2.length();
int len;
//用0补齐两个字符串
if (len1 > len2) {
len = len1;
for (int i = 0; i < len1 - len2; i++) {
num2 = "0" + num2;
}
} else {
len = len2;
for (int i = 0; i < len2 - len1; i++) {
num1 = "0" + num1;
}
}
StringBuilder result = new StringBuilder();
int addNum = 0;
for (int i = len - 1; i >= 0; i--) {
int tmp = (num1.charAt(i) - '0') + (num2.charAt(i) - '0') + addNum;
result.insert(0, tmp % 10);
addNum = tmp / 10;

}
if (addNum != 0) {
result.insert(0, addNum);
}
return result.toString();
}
}

字符串相加
https://leehoward.cn/2023/07/14/字符串相加/
作者
lihao
发布于
2023年7月14日
许可协议