• [LeetCode] 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 class Solution {
     2 public:
     3     string multiply(string num1, string num2) {
     4         // Start typing your C/C++ solution below
     5         // DO NOT write int main() function
     6         string s(num1.size() + num2.size(), '0');
     7         
     8         reverse(num1.begin(), num1.end());
     9         reverse(num2.begin(), num2.end());
    10         
    11         for(int i = 0; i < num1.size(); i++)
    12         {
    13             int flag = 0;
    14             for(int j = 0; j < num2.size(); j++)
    15             {
    16                 int digit = s[i+j] - '0';
    17                 int num = (num1[i] - '0') * (num2[j] - '0');
    18                 int res = digit + num + flag;
    19                 s[i+j] = (res % 10) + '0';
    20                 flag = res / 10;
    21             }
    22             int index = i + num2.size();
    23             while(flag)
    24             {
    25                 int digit = s[index] - '0';
    26                 int res = digit + flag;
    27                 s[index] = (res % 10) + '0';
    28                 flag = res / 10;
    29             }
    30         }
    31         
    32         while(true)
    33         {
    34             if (s[s.size()-1] == '0' && s.size() > 1)
    35                 s.erase(s.size() - 1, 1);
    36             else
    37                 break;
    38         }
    39         
    40         reverse(s.begin(), s.end());
    41         
    42         return s;
    43     }
    44 };
  • 相关阅读:
    持久化类的三种状态
    Hibernate持久化类规则
    JSP之Bean
    JSP动作标签
    JSP九大内置对象
    Jsp指令
    JSTL标签语言
    JSP之EL表达式
    Java 中的 Characters
    汇编基本语法
  • 原文地址:https://www.cnblogs.com/chkkch/p/2774129.html
Copyright © 2020-2023  润新知