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; } };
|