1. 题目
2. 分析
当我们需要计算两个字符串数组的和的时候,我们可以通过两个指针,分别把字符串每一个位置的数字求和,注意进位,当其中一个为空的时候,取另一个字符串的指针对应位置的数字+进位就好
3. 代码
public static String addStrings(String num1, String num2) {
num1 = new StringBuffer(num1).reverse().toString();
num2 = new StringBuffer(num2).reverse().toString();
int a = 0, b = 0;
StringBuffer buffer = new StringBuffer();
int jinwei = 0;
while (a < num1.length() || b < num2.length()) {
if (a >= num1.length()) {
//这里考虑进位
int res = (int) num2.charAt(b++) - 48 + jinwei;
buffer.append(res % 10);
jinwei = res / 10;
continue;
}
if (b >= num2.length()) {
//这里考虑进位
int res = (int) num1.charAt(a++) - 48 + jinwei;
buffer.append(res % 10);
jinwei = res / 10;
continue;
}
int res = ((int) num1.charAt(a) - 48) + ((int) num2.charAt(b) - 48) + jinwei;
buffer.append(res % 10);
jinwei = res / 10;
a++;
b++;
}
//这里考虑进位
if (jinwei > 0) {
buffer.append(jinwei);
}
return buffer.reverse().toString();
}