Leetcode43 字串相乘(python)

2021-08-20 04:21:30 字數 1428 閱讀 1663

題目描述:

給定兩個以字串形式表示的非負整數num1num2,返回num1num2的乘積,它們的乘積也表示為字串形式。

示例 1:

輸入: num1 = "2", num2 = "3"

輸出: "6"

示例 2:

輸入: num1 = "123", num2 = "456"

輸出: "56088"

說明:

num1num2的長度小於110。

num1num2只包含數字0-9

num1num2均不以零開頭,除非是數字 0 本身。

不能使用任何標準庫的大數型別(比如 biginteger)或直接將輸入轉換為整數來處理。

**:class solution:

def multiply(self, num1, num2):

""":type num1: str

:type num2: str

:rtype: str

"""dict =

if (num1=='0' or num2=='0'):

return "0"

n1 = 0

n2 = 0

for c in num1:

val = dict[c]

n1 = n1*10 + val

for s in num2:

val = dict[s]

n2 = n2*10 + val

result = n1 * n2;

return str(result)

總結:本題的挑戰主要在於不得直接將輸入轉為整數。但可利用字典間接地將輸入轉為整數。

錯誤**:

class solution:

def multiply(self, num1, num2):

""":type num1: str

:type num2: str

:rtype: str

"""num=''

num11=float(num1)

num22=float(num2)

num=str(int(num11*num22))

return num

上述錯誤**的執行結果為:

出現這種錯誤的原因主要是因為python中float只能提供約17位的精度,而int可以提供無限精度。

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只包含...

leetcode43 字串相乘

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