LeetCode – Refresh – Multiply Strings
2015-03-21 09:13
417 查看
Notes:
1. Dont have to allocate l1*l2, just l1+l2 is fare enough.
2. remember i--, j--.
3. upgrade[i+j] is += not = rec[i+j+1]/10;
1. Dont have to allocate l1*l2, just l1+l2 is fare enough.
2. remember i--, j--.
3. upgrade[i+j] is += not = rec[i+j+1]/10;
class Solution { public: string multiply(string num1, string num2) { int l1 = num1.size(), l2 = num2.size(); if (l1 == 0 || l2 == 0 || num1 == "0" || num2 == "0") return "0"; vector<int> rec(l1+l2, 0); unordered_map<int, int> upgrade; string result; for (int i = l1-1; i >= 0; i--) { for (int j = l2-1; j >=0; j--) { rec[i+j+1] += int(num1[i] - '0') * int(num2[j] - '0'); rec[i+j+1] += upgrade[i+j+1]; upgrade[i+j+1] = 0; upgrade[i+j] += rec[i+j+1]/10; rec[i+j+1] %= 10; if (i == 0 && j == 0 && upgrade[0]) rec[0] = upgrade[0]; } } bool flag = true; for (int i = 0; i < l1+l2; i++) { if (flag && rec[i] == 0) continue; else flag = false; result += char(rec[i] + '0'); } return result; } };
相关文章推荐
- [leetcode] Multiply Strings
- LeetCode Multiply Strings
- LeetCode: Multiply Strings
- LeetCode43 Multiply Strings
- LeetCode 43 Multiply Strings
- [Leetcode]Multiply Strings
- [leetcode]Multiply Strings @ Python
- [LeetCode] Multiply Strings
- [LeetCode]Multiply Strings
- [LeetCode] Multiply Strings 解题报告
- LeetCode: Multiply Strings
- [leetcode] Multiply Strings
- leetcode[43]Multiply Strings
- [LeetCode] Multiply Strings
- 【leetcode】Multiply Strings
- LeetCode (43) Multiply Strings
- [LeetCode] Multiply Strings 解题报告
- LeetCode:Multiply Strings
- LeetCode 110 Multiply Strings
- [Leetcode] Multiply Strings