题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
#include <string>
#include <vector>
class Solution {
public:
string solve(string s, string t) {
// write code here
string ans;
int i, j;
int s_len = s.length();
int t_len = t.length();
int max_len = max(s_len, t_len);
vector<int> a, b; //a->s,b->t;
vector<int> c;
for (i = 0; i < s_len; i++) {
a.push_back(s[i] - '0');
}
for (i = 0; i < t_len; i++) {
b.push_back(t[i] - '0');
}
for (i = s_len - 1, j = t_len - 1; i >= 0 && j >= 0; i--, j--) {
c.push_back(a[i] + b[j]);
}
if (i < 0) {
while (j >= 0) {
c.push_back(b[j]);
j--;
}
}
if (j < 0) {
while (i >= 0) {
c.push_back(a[i]);
i--;
}
}
for (i = 0; i < c.size(); i++) {
if (c[i] >= 10) {
int count = c[i] / 10;
c[i] = c[i] % 10;
if (i == c.size() - 1) {
c.push_back(count);
break;
}
c[i + 1] += count;
}
}
for (i = c.size() - 1; i >= 0; i--) {
ans += to_string(c[i]);
}
return ans;
}
};
