难度:Easy
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
字符串相加,从最低位开始相加,留一个flag表示进位。
class Solution {
public:
string addStrings(string num1, string num2) {
num1= '0'+num1;
num2='0'+num2;
while(num1.length()>num2.length())
num2 = '0'+num2;
while(num2.length()>num1.length())
num1 = '0'+num1;
int flag=0;
string res;
for(int i=num1.size()-1; i>0;i--)
{
int tmp=(num1[i]-'0' ) +(num2[i] - '0')+flag;
if(tmp>=10)
{
flag=1;
tmp-=10;
}
else
flag=0;
res= (char)('0'+tmp) +res;
}
if(flag)
res='1'+res;
return res;
}
};
执行用时 :24 ms, 在所有 C++ 提交中击败了24.74%的用户
内存消耗 :74.6 MB, 在所有 C++ 提交中击败了6.03%的用户