class Solution {
public:
    string solve(string s, string t) {
        vector<int> vs;
        vector<int> vt;  //把字符串整体转换成数组处理
		//字符串转数字stoi;字符转数字int(c - '0')
		//数字转字符串to_string();数字转字符char(c + '0');
        for(int i=s.size()-1; i>=0; i--){
            vs.push_back(s[i] - '0');
        }

        for(int i=t.size()-1; i>=0;i--){
            vt.push_back(t[i] - '0');  //数字字符和数字本身不对应,直接转换会按照asc码转换,char类型转换成int
        }

        vector<int> ans(s.size()+t.size()); //开辟空间
        for(int i=0; i<vs.size(); i++){   //和手动乘法一样的,先都乘,最后相加的时候处理进位
            for(int j=0; j<vt.size(); j++){
                int res = vs[i] * vt[j];
                ans[i+j] += res;
            }
        }

        int jin = 0;
        for(int i=0; i<ans.size(); i++){  //处理进位,注意覆盖问题
            int temp = ans[i]+jin;
            ans[i] = temp%10;
            jin = temp/10;
        }
        if(jin)ans.push_back(jin);

        while(ans.back() == 0 && ans.size()>1){  //处理前导0,最少有一位数
            ans.pop_back();
        }

        string j;
        for(int i=ans.size()-1; i>=0; i--){
            j+= (ans[i] + '0');  //转变方向
        }
        return j;
    }
};