您的位置:首页 > 其它

leetcode练习(43)

2017-11-05 10:31 267 查看

题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 res

s=Solution()
nums1='98'
nums2='9'
print(s.multiply(nums1,nums2))


结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode