题目描述
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
1.num1 和num2 的长度都小于 5100.
2.num1 和num2 都只包含数字 0-9.
3.num1 和num2 都不包含任何前导零。
4.你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
输入样例:
"99"
"1"
输出样例:
"100"
因为不能采用额外数组把string变为整数,所以要采用reverse函数把字符串逆置,然后按照y总的方法即可。
class Solution {
public:
string ans;
string addStrings(string num1, string num2) {
if(num1.size()<1 && num2.size()<1) return ans;
int len=max(num1.size(),num2.size());
reverse(num1.begin(), num1.end());
reverse(num2.begin(), num2.end());
int t=0;
for(int i=0;i<len;i++)
{
if(i<num1.size()) t+=num1[i]-'0';
if(i<num2.size()) t+=num2[i]-'0';
char p =(t%10) +'0';
ans = p+ans;
t/=10;
}
if(t) ans='1' + ans;
return ans;
}
};