zoukankan      html  css  js  c++  java
  • 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 };
  • 相关阅读:
    使用八爪鱼采集所需信息
    一些小疑问&解答
    第一页的简单爬取
    【不解决了】对Spark源码进行编译
    python学习中的序列函数
    关于python中的小知识总结
    python学习13之数据泄密
    python学习12之梯度推进
    python学习11之交叉验证
    python学习10之管道清理建模
  • 原文地址:https://www.cnblogs.com/Deribs4/p/5847023.html
Copyright © 2011-2022 走看看