class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param s string字符串 第一个整数 * @param t string字符串 第二个整数 * @return string字符串 */

string add_string(string &s1, string& s2)
{
    if(s1 == "0") return s2;
    int len1 = s1.length() - 1;
    int len2 = s2.length() - 1;
    int jinwei = 0;
    string ans;
    
    while(len1 >= 0 || len2 >= 0 || jinwei > 0)
    {
        int val1 = len1 >= 0 ? s1[len1] - '0' : 0;
        int val2 = len2 >= 0 ? s2[len2] - '0' : 0;
        int res = val1 + val2 + jinwei;
        jinwei = res / 10;
        ans += to_string(res % 10);
        len1 --;
        len2 --;
    }
    reverse(ans.begin(), ans.end());
    return ans;
}


string solve(string s, string t) {
    if(s == "0" || t == "0") return "0";
    // write code here
    int m = s.size();
    int n = t.size();
    string ans;
    for(int i = n - 1; i >= 0; i -- )
    {
        string cur;
        int jinwei = 0;
        
        for(int j = n - 1; j > i; j -- )
        {
            cur.push_back('0');
        }
        int val = t[i] - '0';
        for(int j = m - 1; j >= 0; j -- )
        {
            int x = s[j] - '0';
            int pro = x * val + jinwei;
            jinwei = pro / 10;
            cur += to_string(pro % 10);
        }
        if(jinwei) cur += to_string(jinwei);
        reverse(cur.begin(), cur.end());
        ans = add_string(ans, cur);
    }
    return ans;
}

};