class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param s string字符串 第一个整数
     * @param t string字符串 第二个整数
     * @return string字符串
     */
    string solve(string s, string t) {
        // write code here
        if(s == "0" || t == "0"){
            return "0";
        }
        vector<int> sn;
        vector<int> tn;
        int m = s.length(), n=t.length();
        
        for(int i=m-1; i>=0; i--){
            sn.push_back(s[i]-'0');
        }
        for(int i=n-1; i>=0; i--){
            tn.push_back(t[i]-'0');
        }
        
        vector<long long> res(m+n, 0);
        for(int i=0; i<m; i++){
            for(int j=0; j<n; j++){
                res[i+j] += sn[i] * tn[j];
            }
        }
        
        for(int i=m+n-1; i>=0; i--){
            if(res[i] == 0){
                res.pop_back();
            }
            else{
                break;
            }
        }
        
        int index = 0, cur_num = 0;
        string str_res = "";
        for(int i=0; i<res.size(); i++){
            cur_num = res[i] + index;
            index = cur_num / 10;
            cur_num = cur_num % 10;
            str_res.push_back(cur_num + '0');
        }
        while(index > 0){
            cur_num = index % 10;
            index = index / 10;
            str_res.push_back(cur_num + '0');
        }
        reverse(str_res.begin(), str_res.end());
        return str_res;
    }
};