給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。
示例 1
:輸入: num1 =
"2", num2 =
"3"輸出:
"6"示例 2
:輸入: num1 =
"123"
, num2 =
"456"
輸出:"56088"
說明:1: 把資料放到列表中,即list1和list2。num1 和 num2 的長度小於110。
num1 和 num2 只包含數字 0-9。
num1 和 num2 均不以零開頭,除非是數字 0 本身。
不能使用任何標準庫的大數型別(比如 biginteger)或直接將輸入轉換為整數來處理。
2: 每個list1列表中的第i個元素,與list2列表中的第j個元素相乘,把對應乘積的結果放到 result 或 res 列表中。
3: 如果某位的結果大於10,則向後進1(因為計算時是數字擺放與最終結果是正好相反的)。
class
solution
:def
multiply
(self, num1:
str, num2:
str)
->
str:
if num1==
'0'or num2==
'0':
return
'0' lennum1 =
len(num1)
lennum2 =
len(num2)
res =[0
for i in
range
(lennum1+lennum2)
]# 計算
for i in
range
(lennum1)
:for j in
range
(lennum2)
: res[lennum1-i-
1+ lennum2-j-1]
+=int
(num1[i])*
int(num2[j]
)print
(res)
for step in
range
(len
(res)-1
):if res[step]
>=10:
res[step+1]
+= res[step]
//10
res[step]
= res[step]%10
resfin = res[::
-1]# 格式規整
('請輸入兩個引數'
大數相乘 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的長度小於110。num1和num2只包含...
大數相乘 LeetCode43 字串相乘
題目 給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110...