给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
思路是用代码实现竖式加法,需要注意的是倒序相加,并且给位数短的那个补0
在推入字符串时注意是结果+‘0’
class Solution {
public:
string addStrings(string num1, string num2) {
string ans="";
int i=num1.size()-1;
int j=num2.size()-1;
int add = 0;
while(i>=0 || j>=0 || add!=0)
{
int x = i>=0?num1[i]-'0':0;//短位补零
int y = j>=0?num2[j]-'0':0;
int dd = x+y+add;
add= dd/10;
ans.push_back(dd%10+'0');
i--;
j--;
}
reverse(ans.begin(),ans.end());
return ans;
}
};