首页 > 代码库 > Leetcode 43. Multiply Strings
Leetcode 43. Multiply Strings
43. Multiply Strings
- Total Accepted: 72584
- Total Submissions: 292967
- Difficulty: Medium
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.
- Converting the input string to integer is NOT allowed.
- You should NOT use internal library such as BigInteger.
思路:模拟大数相乘,具体见代码。
代码:
1 class Solution { 2 public: 3 string multiply(string num1, string num2) { 4 int i = 0, j; 5 //去除头0 6 while (i < num1.size() && num1[i] == ‘0‘) i++; 7 if (i == num1.size()) return "0"; 8 num1 = num1.substr(i); 9 i = 0;10 while (i < num2.size() && num2[i] == ‘0‘) i++;11 if (i == num2.size()) return "0";12 num2 = num2.substr(i);13 vector<int> nums(num1.size()+num2.size(),0);14 for (i = num1.size() - 1; i >= 0; i--) {15 for (j = num2.size() - 1; j >= 0; j--) {16 int mutil = (num1[i]-‘0‘)*(num2[j]-‘0‘) + nums[i + j + 1];17 nums[i + j + 1] = mutil % 10;18 nums[i + j] += mutil / 10;//这个可以保证不会溢出19 }20 }21 string res = "";22 j = 0;23 while (nums[j] == 0) j++;24 while (j < nums.size()) res += to_string(nums[j++]);25 return res;26 }27 };
Leetcode 43. Multiply Strings
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。