题解 | #大数加法#
大数加法
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; } };