<span style="font-family: Arial, Helvetica, sans-serif;">class Solution {</span>
public:
string multiply(string num1, string num2) {
if( num1 == "" || num2 == "")
return "";
int a[num1.size()], b[num2.size()], c[num1.size()+num2.size()];
memset( a, 0, sizeof(a));
memset( b, 0, sizeof(b));
memset( c, 0, sizeof(c));
for( int i = 0; i < num1.size(); ++i){
a[i] = num1[ num1.size()-i-1] - '0';
}
for( int j = 0; j < num2.size(); ++j){
b[j] = num2[ num2.size()-j-1] - '0';
}
for( int i = 0; i < num1.size(); ++i){
for( int j = 0; j < num2.size(); ++j){
c[i+j] += a[i] * b[j];
}
for( int k = 0; k < num1.size() + num2.size(); ++k){
c[k+1] = c[k+1] + c[k] / 10;
c[k] = c[k] % 10;
}
}
string res;
int pos = num1.size() + num2.size() - 1;
while( c[pos] == 0)
--pos;
if( pos < 0)
return "0";
for( int i = 0; i <= pos; ++i)
res = static_cast< char>( c[i] + '0') + res;
return res;
}
};