您的位置:首页 > 其它

[Leetcode] Multiply Strings

2013-02-17 03:55 274 查看
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.size();
int size2 = num2.size();

vector<int> result(size1+size2,0);

for(int i=0;i<size1;i++)
{
int carry = 0;
int n1 = num1[size1-i-1]-'0';
for(int j=0;j<size2;j++)
{
int n2 = num2[size2-j-1]-'0';
carry = n1*n2 + carry + result[i+j];
result[i+j] = carry%10;
carry = carry/10;
}
result[i+size2] = carry;
}

int i = size1 + size2 - 1;
while( i>0 && result[i]==0) i--;
string ans;
ans = "";

while(i>=0)
{
ans += char(result[i]+'0');
i--;
}

return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: