leetcode43 字串相乘

2021-09-11 01:38:34 字數 1224 閱讀 3425

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

大數相乘問題,轉換為加法問題就好:

class

solution

:def

multiply

(self, num1, num2)

:"""

:type num1: str

:type num2: str

:rtype: str

"""if num1 ==

'0'or num2 ==

'0':

return

'0' res =[0

]*(len

(num1)

+len

(num2)

)for i, a in

enumerate

(num1[::

-1])

:for j, b in

enumerate

(num2[::

-1])

: one =

int(a)

*int

(b) one += res[i+j]

res[i+j+1]

+= one //

10 res[i+j]

= one %

10 res.reverse(

) res =

''.join(

map(

str, res)

)while res.startswith(

'0')

: res = res[1:

]return res

LeetCode43 字串相乘

給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 題目分析 如果兩個字串中有乙個為0,則結果是0 否則的話,將其中乙...

LeetCode43字串相乘

給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1和num2的長度小於110。num1和num2只包含...

LeetCode 43 字串相乘

給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110。nu...