题目大意
如题,两个数字都以字符串的形式被给出。返回值是字符串
别人的代码
觉得很简单直接就A了。。但是看了别人的方法,才发现自己的思路太繁琐,繁琐在细分了很多终止条件。其实这些条件一言以蔽之,就是下面代码while的循环条件。
下面是大神的代码
class Solution {
public:
string addStrings(string num1, string num2) {
int i = num1.size() - 1;
int j = num2.size() - 1;
int carry = 0;
string res = "";
while(i>=0 || j>=0 || carry){
long sum = 0;
if(i >= 0){sum += (num1[i] - '0');i--;}
if(j >= 0){sum += (num2[j] - '0');j--;}
sum += carry;
carry = sum / 10;
sum = sum % 10;
res = res + to_string(sum);
}
reverse(res.begin(), res.end());
return res;
}
};

本文介绍了一种高效的算法来解决两个以字符串形式表示的大数相加的问题。通过使用简单的数学原理和C++实现,该算法能有效地处理任意大小的数字,并通过一个while循环巧妙地避免了多种边界情况。
1435

被折叠的 条评论
为什么被折叠?



