您的位置:首页 > 其它

[LeetCode] Add Strings 字符串相加

2016-10-09 23:59 393 查看
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.

这道题让我们求两个字符串的相加,之前LeetCode出过几道类似的题目,比如二进制数相加,还有链表相加,或是字符串加1,基本思路很类似,都是一位一位相加,然后算和算进位,最后根据进位情况看需不需要补一个高位,难度不大,参见代码如下:

class Solution {
public:
string addStrings(string num1, string num2) {
string res = "";
int m = num1.size(), n = num2.size(), i = m - 1, j = n - 1, carry = 0;
while (i >= 0 || j >= 0) {
int a = i >= 0 ? num1[i--] - '0' : 0;
int b = j >= 0 ? num2[j--] - '0' : 0;
int sum = a + b + carry;
res.insert(res.begin(), sum % 10 + '0');
carry = sum / 10;
}
return carry ? "1" + res : res;
}
};


类似题目:

Add Digits

Add Binary

Add Two Numbers

LeetCode All in One 题目讲解汇总(持续更新中...)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: