#include <algorithm>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
  //枚举所有情况,一一处理
    string solve(string s, string t) {
        // write code here
        int n=s.size();
        int m=t.size();
        if(n==0) return t;
        if(m==0) return s;
        string mystr;
        int carry=0;
        while(n && m){
            int num1=s[n-1]+t[m-1] - '0'-'0'+carry;
            int num=num1%10;
            mystr+=num + '0';
            carry=num1/10;
            n--;
            m--;
        }
        if(n==0 && m==0 &&carry){
            int num=carry;
            mystr+=carry+'0';
        }
        if(n==0 && m!=0){
            //  9999 1
            int k=m-n;
            while(k){
                int num1=t[k-1] -'0'+carry;
                int num=num1%10;
                mystr+=num + '0';
                carry=num1/10;
                k--;
            }
            if(carry){
                int num=carry;
                mystr+=carry+'0';
            }
        }
        if(n!=0 && m==0){
            int k=n-m;
            while(k){
                int num1=s[k-1] -'0'+carry;
                int num=num1%10;
                mystr+=num + '0';
                carry=num1/10;
                k--;
            }
            if(carry){
                int num=carry;
                mystr+=carry+'0';
            }
        }
        reverse(mystr.begin(),mystr.end());
        return mystr;
    }
};