415.字符串相加

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

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

示例 1:

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

Solution

应用在67.二进制求和中的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public String addStrings(String a, String b) {
if(a == null || a.length() == 0) return b;
if(b == null || b.length() == 0) return a;

StringBuilder stb = new StringBuilder();
int i = a.length() - 1;
int j = b.length() - 1;

int c = 0; // 进位
while(i >= 0 || j >= 0) {
if(i >= 0) c += a.charAt(i --) - '0';
if(j >= 0) c += b.charAt(j --) - '0';
stb.append(c % 10);
if(c>9){
c=1;
}else{
c=0;
}
}
String res = stb.reverse().toString();
return c > 0 ? '1' + res : res;
}
}