0%

415. 字符串相加

1. 模拟

直接在string上逐位模拟加法的过程。
需要特别注意的是仍有剩余部分的字符串的处理过程。
时间O(len),空间O(1).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
string addStrings(string num1, string num2) {
int n1 = num1.length(), n2 = num2.length();
int i1 = n1 - 1, i2 = n2 - 1, c = 0;
string sum = "";
while (i1 >= 0 || i2 >= 0 || c != 0) {
if (i1 >= 0)
c += num1[i1--] - '0';
if (i2 >= 0)
c += num2[i2--] - '0';
sum = to_string(c % 10) + sum;
c /= 10;
}

return sum;
}
};