大數相乘 43 字串相乘 中等

2021-10-25 20:13:22 字數 2950 閱讀 9308

給定兩個以字串形式表示的非負整數 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)或直接將輸入轉換為整數來處理。

1: 把資料放到列表中,即list1和list2。

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...