【second】Multiply Strings
注意边界条件即可:num1表示0或者num2表示0;
string multiply(string num1, string num2) {
// Note: The Solution object is instantiated only once and is reused by each test case.
if(num1.empty()||num2.empty())
return "";
if(num1[0]=='0'||num2[0]=='0') //ATT here
return "0";
int m = num1.size();
int n = num2.size();
vector<int> num(m+n-1,0);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
num[i+j] += ((num1[i]-'0')*(num2[j]-'0'));
string res("");
int carry = 0;
for(int i=m+n-2;i>=0;i--)
{
res+=((num[i]+carry)%10+'0');
carry = (num[i]+carry)/10;
}
if(carry!=0)
res+=(carry+'0');
return string(res.rbegin(),res.rend());
}
浙公网安备 33010602011771号