您的位置:首页 > 职场人生

[LeetCode] Multiply Strings

2014-01-05 07:36 399 查看
问题:

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) {
if (num1.size() < num2.size())
return multiply(num2, num1);
string result (num1.size() + num2.size(), '0');
for (int i = num2.size() - 1; i >= 0; i --) {
int offSet = num2.size() - i;
int pos = result.size() - offSet;
int carry = 0;
for (int j = num1.size() - 1; j >= 0; j --) {
int temp = (result[pos] - '0') + (num2[i] - '0') * (num1[j] - '0') + carry;
result[pos] = '0' + (temp % 10);
carry = temp / 10;
pos --;
}
if (carry != 0) result[pos] = carry + '0';
}
int index = 0;
while (index < result.size() && result[index] == '0')
index ++;
if (index == result.size())
return "0";
else
return result.substr(index);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 算法 面试