題目描述:
定給兩個以字符串形式表示的非負整數 num1
狀語從句: num2
,報道查看 num1
狀語從句: num2
的乘積,它們的乘積也表示爲字符串形式。
示例1:
輸入: num1 =“2”,num2 =“3”
輸出: “6”
示例2:
輸入: num1 =“123”,num2 =“456”
輸出: “56088”
說明:
num1
狀語從句:num2
的長度小於110。num1
狀語從句:num2
只所有遊戲數字0-9
。num1
和num2
均不以零開頭,除非是數字0本身。- 不能使用任何標準庫的大數類型(比如BigInteger)或直接將輸入轉換爲整數來處理。
def multiply(num1, num2):
re = [0] * (len(num1)+ len(num2))
for i, e1 in enumerate(reversed(num1)):
for j, e2 in enumerate(reversed(num2)):
re[i+j] += int(e1) * int(e2)
re[i+j+1] += re[i+j]//10
re[i+j] = re[i+j]%10
while len(re)>1 and re[-1] == 0:
re.pop()
return ''.join(map(str, re[::-1]))
def multiply(num1, num2):
re = [0]*(len(num1) + len(num2))
tp = len(re) - 1
for i in reversed(num1):
temp = tp
for j in reversed(num2):
re[temp] += int(i) * int(j)
re[temp-1] += re[temp]//10
re[temp] = re[temp]%10
temp -= 1
tp -= 1
index = 0
while index < len(re)-1 and re[index] == 0:
index +=1
return ''.join(map(str, re[index:]))