leetcode--43. 字符串相乘

原创 2018年04月16日 20:45:58

题目:43. 字符串相乘

链接:https://leetcode-cn.com/problems/multiply-strings/description/

模拟大整数乘法,给定的两个乘数为字符串格式。

python:

def myMulti(num1,num2):
    if num2[0]=="0" or num1[0]=="0":
        return "0"
    res,add="",0
    for i in range(len(num1)-1,-1,-1):
        temp=int(num1[i])*int(num2)+add
        res+=(str)(temp%10)
        add=temp//10
        # num1.pop(-1)
    if add!=0:
        res+=(str)(add)
    return res[::-1]


def myAdd(num1,num2):
    if num1[0]=="0":
        return str(num2)
    if num2[0]=="0":
        return str(num1)
    res,add="",0
    i,j=len(num1)-1,len(num2)-1
    while i>=0 and j>=0:
        temp=int(num1[i])+int(num2[j])+add
        res+=(str)(temp%10)
        add=temp//10
        i-=1
        j-=1
    while i>=0:
        temp=int(num1[i])+add
        res+=(str)(temp%10)
        add=temp//10
        i-=1
    while j>=0:
        temp=int(num2[j])+add
        res+=str(temp%10)
        add=temp//10
        j-=1
    if add:
        res+=(str)(add)
    return res[::-1]
class Solution:
    def multiply(self, num1, num2):
        """
        :type num1: str
        :type num2: str
        :rtype: str
        """
        if num2[0] == "0" or num1[0] == "0":
            return "0"
        num2=list(num2)
        res,last,offset="","0",0
        while num2:
            res=str(myMulti(num1, num2[-1]))
            for i in range(offset):
                res+="0"
            res=str(myAdd(str(res),str(last)))
            offset+=1
            last=res
            num2.pop(-1)
        return res

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hilavergil/article/details/79966213

两个字符串相乘

题目: 给定两个用字符串表示的数字,返回用字符串表示的这两个数字的乘积。 注:数字是一个正整数,但有可能很大。 分析:既然数字有可能很大,那么就不能直接将两个数字相乘,这样有可能会导致溢出,...
  • chunxia75qin
  • chunxia75qin
  • 2013-04-26 16:06:20
  • 1391

面试:字符串: 字符串相乘

题目给出两个字符串的正整数,求其乘积,返回其乘积的字符串的表示算法 num1*num2(N*M)的结果最多是N+M位 先乘, 再累加 public class Solution{ publi...
  • mijian1207mijian
  • mijian1207mijian
  • 2016-06-06 18:33:44
  • 806

Multiply Strings 两个字符串代表数字相乘@LeetCode

这道题一开始觉得很麻烦,后来参考了http://leetcodenotes.wordpress.com/2013/10/20/leetcode-multiply-strings-%E5%A4%A7%E...
  • hellobinfeng
  • hellobinfeng
  • 2013-12-17 09:28:51
  • 12784

Leetcode #43. Multiply Strings 字符串相乘 解题报告

说了是用两个字符串代表的值做相乘。。其实也就是高精度乘法了。。按照高精度乘法的方式去做好了首先转换下字符串到数字数组,让乘数的每一个数字分别和被乘数相乘,注意进位,记得对准位置就好。一般来说保存结果的...
  • MebiuW
  • MebiuW
  • 2016-04-14 23:57:04
  • 768

python实现两个任意字符串乘积

题目: 给定两个任意数字组成的字符串,求乘积,字符可能很大,但是python具有无限精度的整数在这里就不需要考虑这个问题了 下面是简单的实现: #!usr/bin/env pyt...
  • Together_CZ
  • Together_CZ
  • 2017-08-06 21:05:57
  • 804

Python字符串乘法

?字符串乘法语法糖?
  • drafting_dreams
  • drafting_dreams
  • 2017-08-05 17:37:12
  • 737

长整数相乘的字符串表示法

容易出错的地方在于 字符串的0位恰好代表长整数的高位 * 详细描述:    char* LongIntegerMul(char* pNum1, char *pNum2); 输入参数:  ...
  • sinapme
  • sinapme
  • 2013-12-18 08:18:55
  • 662

JavaScript中的字符串乘法

原文原文地址:http://www.davidflanagan.com/2009/08/string-multipli.html原作者:David FlanaganIn Ruby, the "*" o...
  • redraiment
  • redraiment
  • 2009-08-18 15:21:00
  • 45320

实现两个字符串的乘法

实现两个字符串的乘法
  • Forbes_Zhong
  • Forbes_Zhong
  • 2016-05-11 17:00:48
  • 1183

长字符串数字相乘

长字符串数字相乘
  • kangkanglou
  • kangkanglou
  • 2010-07-22 14:33:00
  • 2517
收藏助手
不良信息举报
您举报文章:leetcode--43. 字符串相乘
举报原因:
原因补充:

(最多只允许输入30个字)