zoukankan      html  css  js  c++  java
  • 43. 字符串相乘

    给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

    本题自己乱写,在第277/311 个测试case的时候超时了, GG。

    要注意的地方就是在写两数相加的函数的时候,要注意,最后一位的相加如果进位了,要注意加上去,不然就会像我一样得到:

      123 + 900 = ‘023’

    class Solution:
        def multiply(self, num1: str, num2: str) -> str:
            def add(num1,num2):
                print(num1,num2)
                l1,l2 = len(num1)-1,len(num2) - 1
                carry = 0
                res = ''
                while l1>=0 or l2>=0:
                    s1 = int(num1[l1]) if l1 >=0 else 0 
                    s2 = int(num2[l2]) if l2 >=0 else 0 
                    tmp = s1 + s2 + carry
                    
                    carry = tmp // 10  

                    res = str(tmp % 10) + res
                    l1 -= 1
                    l2 -= 1
                if carry == 1:
                    res = str(carry) + res
                return res
            
            if num1 == '0' or num2 == '0':
                return '0'
            res = ''
            l1,l2 = len(num1) - 1, len(num2) -1
            ex_multiplier = 1
            for i in range(l2,-1,-1):
                curRes = ''
                multiplier = 1
                for j in range(l1,-1,-1):
                    tmp = int(num1[j]) * int(num2[i]) *multiplier * ex_multiplier
                    curRes = add(curRes,str(tmp))
                    multiplier *= 10
                ex_multiplier *= 10
                res = add(res,curRes)
                
            return res



  • 相关阅读:
    centos安装vsftp
    php利用soap实现webservice 和利用soap调用其他语言的webservice
    php连接redis数据库 操作redis任务队列
    shopnc编译安装IM服务器node.js
    centos6.5 64位 yum install nginx的默认安装路径
    安装nfs服务器
    php扩展redis,编译安装redis服务
    x86_64编译JPEG遇到Invalid configuration `x86_64-unknown-linux-gnu'
    shopnc nginx优化配置文件
    nginx支持flv MP4 扩展nginx_mod_h264_streaming,nginx-rtmp-module-master,yamdi
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12240154.html
Copyright © 2011-2022 走看看