/*
直接遍历
注意不能将s、t直接转成数字相加,因为可能会超出int范围
*/
#include <algorithm>
#include <iterator>
#include <string>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
string solve(string s, string t) {
// write code here
reverse(s.begin(),s.end());
reverse(t.begin(),t.end());
string t_s = "", t_t = "";
int i=0,j=0;
int flag = 0;
string ans = "";
while(i<s.size() || j<t.size())
{
if(i<s.size() && j<t.size())
{
int temp = (s[i]-'0' + t[j]-'0' + flag);
ans += to_string(temp%10);
flag = temp/10;
++i;
++j;
}
else if(i<s.size())
{
int temp = (s[i]-'0' + flag);
ans += to_string(temp%10);
flag = temp/10;
++i;
}
else
{
int temp = (t[i]-'0' + flag);
ans += to_string(temp%10);
flag = temp/10;
++j;
}
}
if(flag!=0)
ans += to_string(flag);
reverse(ans.begin(),ans.end());
return ans;
}
};