Idea
模拟:竖式加法
从后面往前逐位相加,然后将相加的结果模10,添加到答案字符串中去
最后需要判断一下是否还有进位问题
需要将答案string翻转
AC Code
class Solution {
public:string addStrings(string num1, string num2) {string ans;int l = num1.size() - 1, r = num2.size() - 1;int temp = 0;while(l >= 0 && r >= 0) {int a = num1[l] - '0';int b = num2[r] - '0';temp += a + b;ans += to_string(temp % 10);temp /= 10;l--;r--;}while(l >= 0) {int a = num1[l--] - '0';temp += a;ans += to_string(temp % 10);temp /= 10;} while(r >= 0) {int b = num2[r--] - '0';temp += b;ans += to_string(temp % 10);temp /= 10;}if(temp) ans += to_string(temp);reverse(ans.begin(),ans.end());return ans;}
};