leetcode Multiply Strings
2014-10-03 18:50
357 查看
题目:
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.
这道题是利用string来模拟乘法,代码如下:
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.
这道题是利用string来模拟乘法,代码如下:
class Solution { public: string add(string s1, string s2) { if (s2.empty()) { return s1; } if (s1.empty()) { return s2; } int carry = 0; int m = s1.size(); int n = s2.size(); reverse(s1.begin(), s1.end()); reverse(s2.begin(), s2.end()); string result; for (int i = 0; i < m || i < n; i++) { int m1 = i < m ? s1[i] - '0' : 0; int m2 = i < n ? s2[i] - '0' : 0; int sum = m1 + m2 + carry; carry = sum / 10; result.push_back(sum % 10 + '0'); } if (carry) { result.push_back(carry + '0'); } reverse(result.begin(), result.end()); return result; } string multiply(string num1, string num2) { int m = num1.size(); int n = num2.size(); reverse(num1.begin(), num1.end()); reverse(num2.begin(), num2.end()); string result; for (int i = 0; i < m; i++) { string tmp; int carry = 0; for (int j = 0; j < n; j++) { int m1 = num1[i] - '0'; int m2 = num2[j] - '0'; int sum = m1 * m2 + carry; carry = sum / 10; tmp.push_back(sum % 10 + '0'); } if (carry) { tmp.push_back(carry + '0'); } reverse(tmp.begin(), tmp.end()); for (int k = 0; k < i; k++) { tmp.push_back('0'); } result = add(result, tmp); } if (result[0] == '0') { return "0"; } return result; } };
相关文章推荐
- [LeetCode] Multiply Strings 解题报告
- ★leetcode43_Multiply Strings
- [LeetCode] Multiply Strings
- leetcode之Multiply Strings
- LeetCode Multiply Strings
- LeetCode - Multiply Strings
- LeetCode 45: Multiply Strings
- leetcode - Multiply Strings
- [LeetCode]Multiply Strings
- 52 leetcode - Multiply Strings
- Leetcode Multiply Strings
- [LeetCode] Multiply Strings
- 【leetcode刷题笔记】Multiply Strings
- Leetcode: Multiply Strings
- [LeetCode]Multiply Strings
- LeetCode--Multiply Strings 字符串相乘
- [LeetCode] Multiply Strings 解题报告
- [LeetCode] Multiply Strings
- 【leetcode】Multiply Strings
- [LeetCode] 059: Multiply Strings