415. 字符串相加
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
模拟加法,从字符串最后一位开始相加,用carry记录进位即可。
public String
addStrings(String num1
, String num2
) {
StringBuilder sb
= new StringBuilder();
int i
= num1
.length()-1, j
= num2
.length()-1;
int carry
= 0;
while (i
>=0 || j
>=0 || carry
!=0){
int n1
= i
>=0 ? num1
.charAt(i
)-'0' : 0;
int n2
= j
>=0 ? num2
.charAt(j
)-'0' : 0;
int sum
= n1
+ n2
+ carry
;
carry
= sum
/10;
sum
= sum
%10;
sb
.append(sum
);
i
--;j
--;
}
return sb
.reverse().toString();
}