Leetcode415. 字符串相加
2019-11-07 本文已影响0人
LonnieQ
题目
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
C++解法
class Solution {
public:
string addStrings(string num1, string num2) {
vector<int> lhs, rhs;
string str;
for (auto item: num1) lhs.push_back(item - '0');
for (auto item: num2) rhs.push_back(item - '0');
vector<int> result(max(lhs.size(), rhs.size()), 0);
int i = 0;
int flag = 0;
while (i < lhs.size() || i < rhs.size()) {
int index = (int)result.size() - i - 1;
result[index] += flag;
if (i < lhs.size()) result[index] += lhs[lhs.size() - i - 1];
if (i < rhs.size()) result[index] += rhs[rhs.size() - i - 1];
flag = (result[index] >= 10);
result[index] %= 10;
i++;
}
if (flag > 0) str.push_back('0' + flag);
for (auto item: result) str.push_back('0' + item);
return str;
}
};
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-strings