leetcode练习(43)

来源:互联网 发布:淘宝客服找不到人 编辑:程序博客网 时间:2024/04/28 17:13

题43

题目要求实现一个矩阵乘法,用python实现出现的问题是将str转为int时,例如num=’98’,直接用int(),会出错,它会转变为‘9’和‘8’。
解决方法是在‘98’外加上[]。
代码如下:

class Solution:    def multiply(self, num1, num2):        """        :type num1: str        :type num2: str        :rtype: str        """        numa = [[num1]]        numb = [[num2]]        M1=len(numa) # nums1的行数        N1=len(numa[0]) #nums1的列数        M2=len(numb) # nums2的行数        N2=len(numb[0]) # nums2的列数        res = [[0 for i in range(M1)]for j in range(N2)]        if N1!=M2:            return "Error"        else:            for i in range(M1):     # nums1的第i行                for j in range(N2): # nums2的第j列                    tmp=0                    for r in range(N1):                         tmp += int(numa[i][r])*int(numb[r][j])  # res的第i行第j列的结果                    res[i][j]=str(tmp)        if len(res)==1 and len(res[0])==1:            return res[0][0]        else:            return ress=Solution()nums1='98'nums2='9'print(s.multiply(nums1,nums2))

结果如下:
这里写图片描述