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 };
  • 相关阅读:
    6.Ray-消息订阅器编写
    附录:2-Event Sourcing pattern (事件溯源设计模式)
    附录:1-Grain生命周期-译注
    4.Ray-Handler之CoreHandler编写
    Q&A-20180128
    TODO
    3.Ray-Event编写
    缓存技术内部交流_01_Ehcache3简介
    Spring AMQP 源码分析 04
    Spring AMQP 源码分析 03
  • 原文地址:https://www.cnblogs.com/coolqiyu/p/5332999.html
Copyright © 2011-2022 走看看