LeetCode-Multiply Strings
2014-08-15 20:55
316 查看
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.
Solution:
Code:
<span style="font-size:14px;">class Solution {
public:
string multiply(string num1, string num2) {
const int length1 = num1.size();
if (length1 == 0) return num2;
const int length2 = num2.size();
if (length2 == 0) return num1;
if (num1 == "0" || num2 == "0") return "0";
string result(length1+length2, '0');
int multCarry, addCarry, sum;
for (int i = length1-1; i >= 0; --i) {
string tempResult(length1+length2, '0');
multCarry = 0;
for (int j = length2-1; j >= 0; --j) {
sum = multCarry+(num1[i]-'0')*(num2[j]-'0');
multCarry = sum/10;
tempResult[i+j+1] = '0'+sum%10;
}
tempResult[i] = '0'+multCarry;
addCarry = 0;
for (int j = length1+length2-1; j >= 0; --j) {
sum = addCarry+result[j]-'0'+tempResult[j]-'0';
addCarry = sum/10;
result[j] = '0'+sum%10;
}
}
if (result[0] == '0') return result.substr(1, length1+length2-1);
else return result;
}
};</span>
Note: The numbers can be arbitrarily large and are non-negative.
Solution:
Code:
<span style="font-size:14px;">class Solution {
public:
string multiply(string num1, string num2) {
const int length1 = num1.size();
if (length1 == 0) return num2;
const int length2 = num2.size();
if (length2 == 0) return num1;
if (num1 == "0" || num2 == "0") return "0";
string result(length1+length2, '0');
int multCarry, addCarry, sum;
for (int i = length1-1; i >= 0; --i) {
string tempResult(length1+length2, '0');
multCarry = 0;
for (int j = length2-1; j >= 0; --j) {
sum = multCarry+(num1[i]-'0')*(num2[j]-'0');
multCarry = sum/10;
tempResult[i+j+1] = '0'+sum%10;
}
tempResult[i] = '0'+multCarry;
addCarry = 0;
for (int j = length1+length2-1; j >= 0; --j) {
sum = addCarry+result[j]-'0'+tempResult[j]-'0';
addCarry = sum/10;
result[j] = '0'+sum%10;
}
}
if (result[0] == '0') return result.substr(1, length1+length2-1);
else return result;
}
};</span>
相关文章推荐
- 【Leetcode】【Medium】Multiply Strings
- Leetcode: Multiply Strings
- [leetcode]Multiply Strings @ Python
- 52 leetcode - Multiply Strings
- Leetcode Multiply Strings
- 【LeetCode练习题】Multiply Strings
- [LeetCode]Multiply Strings
- [leetcode] Multiply Strings
- Leetcode-Multiply Strings
- [Leetcode 43, medium] Multiply Strings
- [LeetCode] Multiply Strings 解题报告
- ★leetcode43_Multiply Strings
- leetcode之Multiply Strings
- leetcode Multiply Strings
- LeetCode Multiply Strings
- LeetCode:Multiply Strings
- Leetcode Multiply Strings
- leetcode---Multiply Strings---大整数乘法
- Leetcode 43 Multiply Strings
- [LeetCode]043-Multiply Strings