[LeetCode] 415.Add Strings
- 题目描述
- 解题思路
- 实验代码
题目描述
Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.
Note:
1. The length of both num1 and num2 is < 5100.
2. Both num1 and num2 contains only digits 0-9.
3. Both num1 and num2 does not contain any leading zero.
4. You must not use any built-in BigInteger library or convert the inputs to integer directly.
解题思路
这道题其实也不复杂,我用了reverse()函数解决,主要是想清楚进位,合位直接的关系,以及注意好ASCII码与字符的关系以及转换,这道题就能得到解决。
实验代码
class Solution {
public:
string addStrings(string num1, string num2) {
string sum;
if (num1.size() > num2.size())
return addStrings(num2, num1);
reverse(num1.begin(), num1.end());
reverse(num2.begin(), num2.end());
int ca = 0, i = 0;
for (i; i < num1.size(); i++) {
int cd = (num1[i]-'0'+num2[i]-'0'+ca)%10;
ca = (num1[i]-'0'+num2[i]-'0'+ca)/10;
sum += to_string(cd);
}
for (i; i < num2.size(); i++) {
int cd = (num2[i]-'0'+ca)%10;
ca = (num2[i]-'0'+ca)/10;
sum += to_string(cd);
}
if (ca == 1)
sum += "1";
reverse(sum.begin(), sum.end());
return sum;
}
};
798

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



