leetcode 每日一题 43. 字符串相乘

竖式乘法

思路:

 

代码:

class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        if num1 == '0' or num2 == '0':
            return '0'
        len1,len2 = len(num1),len(num2)
        res = [0]*(len1+len2)
        for i in range(len1-1,-1,-1):
            for j in range(len2-1,-1,-1):
                mul = (ord(num1[i])-ord('0'))*(ord(num2[j])-ord('0'))
                sumr = mul+res[i+j+1]
                res[i+j+1] = sumr%10
                res[i+j] += sumr//10
        size = 0
        for i in range(len(res)):
            if res[i]!=0:
                break
            size += 1
        new_res = [str(x) for x in res]
        resStr = ''.join(new_res)
        return resStr[size:]

 

posted @ 2020-05-25 15:28  nil_f  阅读(126)  评论(0)    收藏  举报