leetcode-43-字符串相乘

---恢复内容开始---

题目描述:

 方法一:O(n2

class Solution:
    def  multiply(self, num1: str, num2: str) -> str:
        def str2int(s):
            return ord(s) - ord("0")
        res = 0
        num1,num2 = num1[::-1],num2[::-1]
        for i,x in enumerate(num1):
            temp = 0
            for j,y in enumerate(num2):
                temp += 10**j*str2int(x)*str2int(y)
            res += temp*10**i
        return str(res)

 优化:

class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        res = 0
        for i in range(1,len(num1)+1):
            for j in range(1, len(num2)+1):
                res += int(num1[-i]) * int(num2[-j]) *10**(i+j-2)
        return str(res)

 

---恢复内容结束---

posted @ 2019-07-12 09:56  oldby  阅读(129)  评论(0编辑  收藏  举报