• 43. Multiply Strings


    43. Multiply Strings

    1 题目

    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 integerdirectly.

    2 解题 && 思路

    不难做,模拟乘法。注意边界条件

    3. 实现

    class Solution(object):
        def multiply(self, num1, num2):
            """
            :type num1: str
            :type num2: str
            :rtype: str
            """
            r = [ [ ] for i in range(len(num2)) ]
            max_l = 0
            for i in range(len(num2)-1,-1,-1):
                carry_bit = 0
                for t in range(0,len(num2)-1-i):
                    r[i].append(0)
       
                for j in range(len(num1)-1,-1,-1):
                    tmp = int(num1[j]) * int(num2[i]) + carry_bit 
                    if tmp >=10 :
                        carry_bit = tmp / 10
                        tmp = tmp % 10
                    else:
                        carry_bit = 0
                    r[i].append(tmp)
    
                if carry_bit != 0:
                    r[i].append(carry_bit)
                if len(r[i]) > max_l:
                    max_l = len(r[i])
            i =  0 
            ret =""
            print r
            carry_bit = 0
            is_no_zore=False
            while i<max_l:
                tmp = 0
    
                for e in r :
                    if i>=len(e):
                        continue
                    tmp = e[i] + tmp 
                tmp = tmp + carry_bit
                if tmp >= 10 :
                    carry_bit = tmp / 10
                    tmp = tmp % 10
                else:
                    carry_bit=0
                if tmp != 0 :
                    is_no_zore = True
                ret = str(tmp)+ret
                i = i + 1 
            if carry_bit != 0:
                ret = str(carry_bit)+ret
            return  ret if is_no_zore == True else "0"
    
  • 相关阅读:
    Android Studio:layout-sw600dp文件夹中创建activity_main.xml
    Android Studio提示忽略大小写
    学习进度条-3
    二维数组
    人月神话阅读笔记01
    作业-数组
    学习进度条-2
    周四测试
    家庭家长本-微信小程序
    第一周开课博客园
  • 原文地址:https://www.cnblogs.com/bush2582/p/11286553.html
Copyright © 2020-2023  润新知