43. 字符串相乘
本题主要是考察编程实现竖式乘法计算
思路:①将长度为n的结果用n个数组进行存储,避免数据过大
②模拟进行竖式乘法
③将结果转成字符串输出
class Solution:
def multiply(self, num1: str, num2: str) -> str:
if num1=='0' or num2=='0':
return "0"
save = [0 for i in range(len(num1)+len(num2))]
flag2 = 0
for i in num1[::-1]:
flag1 = 0
for j in num2[::-1]:
save[flag1+flag2] += int(i)*int(j)
flag1 += 1
flag2 += 1
res = ""
for i in range(len(save)-1):
save[i+1] += save[i]//10
save[i] %= 10
res = str(save[i]) + res
if(save[-1]):
res = str(save[-1])+res
return res
时间复杂度O(NM)
空间复杂度O(M+N)