#include <algorithm>
#include <iterator>
#include <ostream>
#include <string>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
string solve(string s, string t) {
// write code here
int carry = 0;
string res;
auto s_it = s.rbegin();
auto t_it = t.rbegin();
res.resize(max(s.size(), t.size()));
auto res_it = res.rbegin();
while (s_it != s.rend() && t_it != t.rend()) {
int sum = *s_it - '0' + *t_it - '0' + carry;
*res_it = (char)((sum % 10) + '0');
carry = sum >= 10 ? 1 : 0;
s_it++;
t_it++;
res_it++;
}
auto new_it = s_it == s.rend() ? t_it : s_it;
auto new_end = s_it == s.rend() ? t.rend() : s.rend();
while (new_it != new_end) {
int sum = *new_it - '0' + carry;
*res_it = (char)((sum % 10) + '0');
carry = sum >= 10 ? 1 : 0;
res_it++;
new_it++;
}
if (carry) {
res.insert(0, "1");
}
return res;
}
};