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;
}
};