class Solution:
def multiply(self, num1: str, num2: str) -> str:
if num1 == '0' or num2 == '0':
return "0"
m, n = len(num1), len(num2)
record = [0] * (m+n) #记录乘积,长度不会超过两数长度之和
#从低位到高位
for i in range(n-1, -1, -1): #乘数2
for j in range(m-1, -1, -1): #乘数1
#计算乘积,并与前一位的进位累加
tmp_res = int(num1[j]) * int(num2[i]) + record[i+j+1]
record[i+j] += tmp_res // 10 #本位
record[i+j+1] = tmp_res % 10 #进位
i = 0
while record[i] == 0: #跳过开头的0
i += 1
#转成字符串
res = ''
for r in range(i, m+n):
res += str(record[r])
return res