python大数相乘leetcode43

image.png

代码思路:参考浅谈一下大数相乘有关思路(图解)与用java代码具体解决方案https://blog.csdn.net/sunkun2013/article/details/11822927

class Solution(object):
    def multiply(self, num1, num2):
        """
        :type num1: str
        :type num2: str
        :rtype: str
        """
        if num1 == '0' or num2 =='0':
            return '0'
        if len(num2)<len(num1):
            tmp = num2
            num2 = num1
            num1 = tmp
        res1 = [[0 for i in range(len(num2))] for j in range(len(num1))]
        for i in range(len(num1)):
            for j in range(len(num2)):
                res1[i][j] = (int(num1[i])*int(num2[j]))

        res2 = [0 for i in range(len(num2)+len(num1)-1)]
        for i in range(len(num1)):
            for j in range(len(num2)):
                res2[i+j] += res1[i][j]

        res = ''
        jinwei = 0
        for i in range(len(res2)-1,-1,-1):
            dangqianwei = (res2[i]+jinwei)%10
            jinwei = (res2[i]+jinwei)/10
            res = str(dangqianwei) + res
        res = str(jinwei) +res
        if res[0] == '0':
            return res[1:]
        return res

s = Solution()
print s.multiply('9','99')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容