/*
直接遍历
注意不能将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;
    }
};