您的位置:首页 > 其它

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息