zoukankan      html  css  js  c++  java
  • LeetCode(43. Multiply Strings)

    题目:

    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.

    思路比较简单,不多说啦

    几个需要注意的点:

    1. 高位多个为0的,需要进行判断

    2. 如果乘数为0的话,可以直接跳过,能节省不少时间

    3. string 的两个使用

     1) 创建有 len 长的 ‘0’串  string str(len, '0')

     2) string 的反转 reverse(str.begin(), str.end())  反转后操作好像更容易理解~

     1 class Solution {
     2 public:
     3     string multiply(string num1, string num2) {
     4         int size1 = num1.size();
     5         int size2 = num2.size();
     6         string result(size1 + size2 + 1, '0');
     7         reverse(num1.begin(),num1.end());
     8         reverse(num2.begin(), num2.end());
     9         for(int j = 0; j < size2; ++j){//num2
    10             if(num2[j] == '0')
    11                 continue;
    12             int k = j;
    13             for(int i = 0; i < size1; ++i){//num1
    14                 int tmp = (num1[i] - '0') * (num2[j] - '0') + result[k] - '0';
    15                 result[k] = tmp % 10 + '0';
    16                 result[k + 1] = result[k + 1] + tmp / 10;
    17                 ++k;
    18             }
    19         }
    20         while(!result.empty() && result.back() == '0') result.pop_back();
    21         if(result.empty()) return "0";
    22         reverse(result.begin(), result.end());
    23         return result;
    24     }
    25 };
  • 相关阅读:
    java
    GO学习Day2
    GO学习Day1
    APS定时任务框架
    用微信每天给女朋友说晚安
    人生苦短,我用python
    Python 捕获terminate信号优雅关闭进程
    Python 多线程及多进程结合使用
    Python API 接口权限控制思路
    Docker runC 严重安全漏洞CVE-2019-5736 导致容器逃逸
  • 原文地址:https://www.cnblogs.com/coolqiyu/p/5332999.html
Copyright © 2011-2022 走看看