这里面用的倒叙添加而不是头插入,这样可以减少时间复杂度。我们可以先倒着插入,最后在逆序一下
class Solution {
public:
string addStrings(string num1, string num2) {
int end1 = num1.size() - 1;
int end2 = num2.size() - 1;
int next = 0;
string str;
while (end1 >= 0 || end2 >= 0) {
int interface = end1 >= 0 ? num1[end1--] - '0' : 0;
int drag = end2 >= 0 ? num2[end2--] - '0' : 0;
int ret = interface + drag + next;
next = ret / 10;
ret %= 10;
str += ('0' + ret);
}
if (next == 1)
{
str += '1';
}
reverse(str.begin(), str.end());
return str;
}
};