从s和t的末尾开始,一个一个加,考虑进位。

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    string solve(string s, string t) {
        // write code here

        int i = s.size();
        int j = t.size();
//         int k = i > j ? i : j;

        int jinwei = 0, curSum = 0;
        string str;
        int a = 0, b = 0;
        while(i-- && j-- && i >= 0 && j >= 0)
        {
            a = s[i] - '0';
            b = t[j] - '0';
            curSum = a + b + jinwei;
            jinwei = curSum / 10;
            str += to_string(curSum%10);
        }
        while(j-- && j >= 0)
        {
            b = t[j] - '0';
            curSum = b + jinwei;
            jinwei = curSum / 10;
            str += to_string(curSum%10);
        }
        while(i-- && i >= 0)
        {
            a = s[i] - '0';
            curSum = a + jinwei;
            jinwei = curSum / 10;
            str += to_string(curSum%10);
        }
        if(jinwei)
        {
            str += to_string(jinwei);
        }
        return reverseString(str);
    }
    string reverseString(string s)
    {
        string str;
        for(int i = s.size()-1; i >= 0; i--)
        {
            str += s[i];
        }
        return str;
    }
};