415. 字符串相加
思路1:暴力法
从后向前遍历两个字符串,设立一个flag记录进位
思路2:双指针
偷看了一眼题解发现这个做法,想了想我的思路1不就是双指针吗(?
好好好,终于摆脱一题暴力法,开扣!
从后向前遍历两个字符串,设立一个flag记录进位,string短的就补0
string addStrings(string num1, string num2) {
int i=num1.size()-1;
int j=num2.size()-1;
string result;
int flag=0;
while (i>=0||j>=0){
int x;int y;
if(i>=0)
x=num1[i]-'0';
else
x=0;
if(j>=0)
y=num2[j]-'0';
else
y=0;
if(x+y+flag<10)
{
result.push_back(x+y+flag+'0');
flag=0;
j--;
i--;
}
else
{
result.push_back(x+y+flag-10+'0');
flag=1;
i--;j--;
}
}
if(flag==1)
result.push_back(1+'0');
std::reverse(result.begin(), result.end());
return result;
}
简单的一题,不多说了,开心