• 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 };
  • 相关阅读:
    iOS委托传值
    关于异步和多线程的关系
    删除xcode中的插件
    iOS Xcode常用插件
    关于ECSlidingViewController的使用
    iOS去掉tableview中无内容的cell
    iOS中block用法之两个界面传值问题
    cocoapods管理第三方类库
    在GitHub托管代码-终端命令
    vsCode快捷键
  • 原文地址:https://www.cnblogs.com/Deribs4/p/5847023.html
Copyright © 2020-2023  润新知