class Solution {
public:
string multiply(string num1, string num2) {
if(num1=="0"||num2=="0"){
return "0";
}
int l1, l2, tmp=0;
l1=num1.length();l2=num2.length();
int arr[l2][l1+l2];
int n1[l1], n2[l2];
string ans="";
for(int i=0;i<l1;i++){
n1[i]=(int)(num1.at(i)-'0');
}
for(int j=0;j<l2;j++){
for(int i=0;i<l1+l2;i++){
arr[j][i]=0;
}
n2[j]=(int)(num2.at(j)-'0');
}
for(int j=0;j<l2;j++){
for(int i=0;i<l1;i++){
arr[j][l1+l2-i-j-1]=n2[l2-j-1] * n1[l1-i-1];
}
}
int upper=0;
for(int i=0;i<l1+l2;i++){
tmp=upper;
for(int j=0;j<l2;j++){
tmp += arr[j][l1+l2-i-1];
}
upper = tmp /10;
ans = (char)(tmp % 10+(int)('0'))+ans;
}
if(ans[0]=='0'){
string res="";
for(unsigned int i=1;i<ans.size();i++){
res = res + ans[i];
}
return res;
}else{
return ans;
}
}
};