Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2.
Note:
The length of both num1 and num2 is < 5100.
Both num1 and num2 contains only digits 0-9.
Both num1 and num2 does not contain any leading zero.
You must not use any built-in BigInteger library or convert the inputs to integer directly.
class Solution {
public:
string addStrings(string num1, string num2) {
//直接加就是了,右对齐
//需要提取利用的信息:两个string的长度!!
int n1=num1.size();
int n2=num2.size();
if(n1<n2){
swap(num1,num2);
}
n1=num1.size();
n2=num2.size();
string sum=num1;
int j=n2-1;
int carry=0;
for(int i=n1-1;i>=0;i--){
int cur=num1[i]-'0'+(j>=0?(num2[j]-'0'):0)+carry;
sum[i]=cur%10 + '0';
carry=cur>9?1:0;
j--;
if(j<0&&carry==0) return sum;
}
sum=carry==1?'1'+sum:sum;
return sum;
}
};