class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    string solve(string s, string t) {
        int sIdx = s.size() - 1, tIdx = t.size() - 1;
        string ans = "";
        int c = 0; // 进位
        for (; sIdx >= 0 && tIdx >= 0; sIdx--, tIdx--) {
            int tmp = s[sIdx] + t[tIdx] - 2 * '0' + c;
            c = tmp / 10;
            ans = (char)(tmp % 10 + '0') + ans;
        }
        for (;sIdx >= 0; sIdx--) {
            int tmp = s[sIdx] + c - '0';
            c = tmp / 10;
            ans = (char)(tmp % 10 + '0') + ans;
        }
        for (;tIdx >= 0; tIdx--) {
            int tmp = t[tIdx] + c - '0';
            c = tmp / 10;
            ans = (char)(tmp % 10 + '0') + ans;
        }
        if (c) {
            ans = (char)(c + '0') + ans;
        }
        return ans;
    }
};