您的位置:首页 > 其它

[LeetCode] Multiply Strings

2013-06-26 03:11 323 查看
Given two numbers represented as strings, return multiplication of the numbers as a string.

Note: The numbers can be arbitrarily large and are non-negative.

class Solution {
public:
string multiply(string num1, string num2) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int size1=num1.length();
int size2=num2.length();

vector<int> resultInt;

int carry=0;
int d1=0,d2=0,mul=0;
int i=0,j=0;
for(i=0;i<size2;i++)
{
carry=0;
d1=num2[size2-1-i]-'0';
for(j=0;j<size1;j++)
{
d2=num1[size1-1-j]-'0';
mul=d1*d2+carry;

if(resultInt.size() < i+j+1)
{
resultInt.push_back(mul%10);
}
else
{
mul=resultInt[i+j]+mul;
resultInt[i+j]=mul%10;
}
carry=mul/10;
}
if(carry!=0)
{
if(resultInt.size()<i+j+2)
resultInt.push_back(carry);
else
resultInt[i+j+1]=carry;
}
}

//turn vector<int> to string arrays
string result="";
int allzero=1
for(int i=resultInt.size()-1;i>=0;i--)
{
if(resultInt[i]!=0)
allzero=0;

if(!allzero || i==0)
result+='0'+resultInt[i];
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: