給定兩個以字串形式表示的非負整數num1
和num2
,返回num1
和num2
的乘積,它們的乘積也表示為字串形式。
輸入: num1 = "2", num2 = "3"
輸出: "6"
輸入: num1 = "123", num2 = "456"
輸出: "56088"
模擬乘法計算過程實現
class
solution
:def
multiply
(self, num1:
str, num2:
str)
->
str:
if num1 ==
'0'or num2 ==
'0':
return
'0' l1, l2 =
len(num1)
,len
(num2)
k =[0
for i in
range
(l1+l2)
] num1, num2 = num1[::
-1], num2[::
-1]for i in
range
(l1)
:for j in
range
(l2)
: k[i+j]
+=int
(num1[i])*
int(num2[j]
)for i in
range
(l1 + l2)
:if k[i]
>=10:
k[i+1]
+= k[i]
//10
k[i]
= k[i]%10
res =
"".join(
str(x)
for x in k[::
-1])
res = res.lstrip(
'0')
# 去除前導0
return res
43 字串相乘
給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110。nu...
43 字串相乘
題目描述 給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於1...
43 字串相乘
小聲bb,直接int 多好 既然題目要求不能直接用int 我只好開動我的大腦開始想有什麼解決方案。然後首先想到的就是小學時候老師教乘法時用乘式寫法。1 2 3 4 5 6 1 5 4 9 2 5 5 3 51 2 3 4 5 1 51 0 0 5 0 6 1 5 1 20 8 0 4 0 5 5 3...