从后往前遍历两个String,把对应位的和放入StringBuilder。循环结束后检查是否还有进位,有的话再添加一位1。将StringBuilder反转后再转化成String输出。代码如下:
class Solution {
public String addStrings(String num1, String num2) {
int i = num1.length() - 1, j = num2.length() - 1;
StringBuilder res = new StringBuilder();
int carry = 0;
while(i >= 0 || j >= 0){
int sum = carry;
if(i >= 0){
int x = num1.charAt(i) - '0';
sum += x;
}
if(j >= 0){
int y = num2.charAt(j) - '0';
sum += y;
}
carry = sum / 10;
res.append(sum % 10);
i--;
j--;
}
if(carry > 0){
res.append(carry);
}
return res.reverse().toString();
}
}