class Solution:
def multiply(self, num1: str, num2: str) -> str:
def multi(num1,num2):
return (ord(num1)-ord('0')) * (ord(num2)-ord('0'))
n = len(num1)
m = len(num2)
nums = []
# 双重循环获取每个数位组合的乘积
for i in range(m-1,-1,-1):
temp = [0]*n
for j in range(n-1,-1,-1):
temp[j] = multi(num1[j],num2[i])
# 把 10 10改成 1 1 0
for j in range(n-1,-1,-1):
if temp[j] >= 10 and j >0:
temp[j-1] += 1
temp[j] -= 10
elif temp[j] >= 10 and j==0:
temp[j] -= 10
temp.insert(0,1)
# 把1 1 0改成 110
num = 0
for t in temp:
num *= 10
num += int(t)
nums.insert(0,num)
res = 0
for n in nums:
res *= 10
res += n
return str(res)