[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);
}
};
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--Multiply Strings
- [Leetcode] #43 Multiply Strings
- leetcode Multiply Strings
- [LeetCode] Multiply Strings
- LeetCode:Multiply Strings
- 大整数乘法--leetcode Multiply Strings
- [LeetCode] 415 Add Strings && 67 Add Binary && 43 Multiply Strings
- LeetCode: Multiply Strings
- Multiply Strings leetcode
- LeetCode 110 Multiply Strings
- Leetcode: Multiply Strings
- LeetCode Multiply Strings(大整数相乘)
- [leetcode]Multiply Strings @ Python
- LeetCode--Multiply Strings
- LeetCode Multiply Strings
- 【LeetCode练习题】Multiply Strings
- 【Leetcode】【python】Multiply Strings
- Leetcode 43 Multiply Strings
- LeetCode---Multiply Strings
- leetcode(43) - Multiply Strings