Multiply Strings--LeetCode
2017-10-30 19:59
405 查看
1.题目
Multiply StringsGiven two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2.
Note:
The length of both num1 and num2 is < 110.
Both num1 and num2 contains only digits 0-9.
Both num1 and num2 does not contain any leading zero.
You must not use any built-in BigInteger library or convert the inputs to integer directly.
2.题意
字符串相乘3.分析
直接将字符串各位相乘,得到的结果反转后即为所求的积但是必须将多余的0去除
注意
v[i+j]+=(num1[m-1-i]-'0')*(num2[n-1-j]-'0')+digit;
+=符号不要写成=
nums1与nums2各元素相乘,不要写成v乘以v
去除0的时候要用while不要写成if
4.代码
class Solution { public: string multiply(string num1, string num2) { const int m = num1.size(); const int n = num2.size(); vector<int> v(m + n, 0); for(int i = 0; i < m; ++i) { int digit = 0; for(int j = 0; j < n; ++j) { v[i + j] += (num1[m - 1 - i] - '0') * (num2[n - 1 - j] - '0') + digit; digit = v[i + j] / 10; v[i + j] %= 10; } if(digit > 0) v[n + i] += digit; } while(v.size() > 1 && v.back() == 0) v.pop_back(); string result; for(auto it = v.rbegin(); it != v.rend(); ++it) result += *it + '0'; return result; } };
相关文章推荐
- leetcode 43. Multiply Strings
- Leetcode:Multiply Strings
- [LeetCode]Multiply Strings
- leetcode:Multiply Strings
- [LeetCode] 大数问题,相加和相乘,题 Multiply Strings
- [C++]LeetCode: 69 Multiply Strings
- Leetcode43 Multiply Strings
- [LeetCode]Multiply Strings
- Multiply Strings - LeetCode
- Multiply Strings leetcode
- leetcode43 Multiply Strings
- LeetCode Multiply Strings
- LeetCode Multiply Strings
- LeetCode43 Multiply Strings
- leetcode Multiply Strings
- [LeetCode] Multiply Strings
- 【LeetCode】Multiply Strings
- 【Leetcode】【Medium】Multiply Strings
- LeetCode: Multiply Strings
- leetcode:Multiply Strings +…