415. 字符串相加
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1和num2的长度都小于 5100.num1和num2都只包含数字0-9.num1和num2都不包含任何前导零。- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
代码实现(C++)
class Solution {
public:
string addStrings(string num1, string num2) {
int i = num1.size()-1;
int j = num2.size()-1;
//进位
char next = 0;
string sum;
while(i>=0 || j>=0)
{
char value1 = 0;
if(i>=0)
{
value1 = num1[i]-'0';
}
char value2 = 0;
if(j>=0)
{
value2 = num2[j]- '0';
}
char addvalue = value1+value2+next;
if(addvalue > 9)
{
next = 1;
addvalue -= 10;
}
else
{
next = 0;
}
sum.insert(sum.begin(),addvalue + '0');
--i;
--j;
}
if(next == 1)
{
sum.insert(sum.begin(),'1');
}
return sum;
}
};
本文详细解析了如何在不使用内置BigInteger库的情况下,实现两个大字符串形式的非负整数相加的算法。通过逐位相加并处理进位,确保结果的准确性,同时避免了直接转换为整数可能带来的溢出问题。

1万+

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



