问题
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
思路
因为是字符串形式,不能转换成int型直接加减,会溢出。
需要将两个字符串从最后一位开始依次提出来加减。
注:不要忘记每一次位相加产生的进位
题目很简单,但是具体忘记string的append方式,在此记录一下
代码
class Solution {
public:
string addStrings(string num1, string num2) {
int i = num1.size()-1, j = num2.size()-1, f=0;
string ans ="";
while(1){
int n1,n2;
if(i==-1) n1=0;
else {
n1=num1[i]-'0';
i--;
}
if(j==-1) n2=0;
else {
n2=num2[j]-'0';
j--;
}
int m=f+n1+n2;
if(m>9){
f=m/10;
m=m%10;
}
else f=0;
ans.push_back(m+'0');
if(i==-1&&j==-1) break;
}
if(f!=0) ans.push_back(f+'0');
//将字符串翻转
reverse(ans.begin(),ans.end());
return ans;
}
};