zoukankan      html  css  js  c++  java
  • 43. Multiply Strings (大数乘法)

     

    Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string.

    Example 1:

    Input: num1 = "2", num2 = "3"
    Output: "6"

    Example 2:

    Input: num1 = "123", num2 = "456"
    Output: "56088"
    

    Note:

    1. The length of both num1 and num2 is < 110.
    2. Both num1 and num2 contain only digits 0-9.
    3. Both num1 and num2 do not contain any leading zero, except the number 0 itself.
    4. You must not use any built-in BigInteger library or convert the inputs to integer directly.

     1 class Solution {
     2     public String multiply(String num1, String num2) {
     3     int m = num1.length(), n = num2.length();
     4     int[] pos = new int[m + n];
     5    
     6     for(int i = m - 1; i >= 0; i--) {
     7         for(int j = n - 1; j >= 0; j--) {
     8             int mul = (num1.charAt(i) - '0') * (num2.charAt(j) - '0'); 
     9             int p1 = i + j, p2 = i + j + 1;
    10             int sum = mul + pos[p2];
    11 
    12             pos[p1] += sum / 10;
    13             pos[p2] = (sum) % 10;
    14         }
    15     }  
    16     
    17     StringBuilder sb = new StringBuilder();
    18     for(int p : pos) 
    19         if(!(sb.length() == 0 && p == 0)) 
    20             sb.append(p);
    21     return sb.length() == 0 ? "0" : sb.toString();
    22 
    23     }
    24 }
  • 相关阅读:
    hibernate03增删改查
    hibernate02环境的搭建
    hibernate01ORM的引入
    20170623_oracle_优化与体系结构
    20170626_oracle_数据库设计
    logging模块
    hashlib模块
    json和pickle模块
    sys模块
    os模块
  • 原文地址:https://www.cnblogs.com/zle1992/p/9458132.html
Copyright © 2011-2022 走看看