小聲bb,直接int()多好 = =
既然題目要求不能直接用int(),我只好開動我的大腦開始想有什麼解決方案。然後首先想到的就是小學時候老師教乘法時用乘式寫法。
1 2 3
* 4 5
---------
6 1 5
4 9 2
---------
5 5 3 5
1 2 3
* 4 5
---------
1 51 0
0 5---------
0 6 1 5
1 20 8
0 4---------
0 5 5 3 5
我們就可以一位一位的計算了。。。(話說我為什麼不多想一會再去找答案呢= =)
下面是**:
執行用時: 332 ms, 在multiply strings的python3提交中擊敗了16.89% 的使用者
記憶體消耗: 13.3 mb, 在multiply strings的python3提交中擊敗了0.68% 的使用者
class
solution
:def
multiply
(self, num1:
str, num2:
str)
->
str:
i =1#乘數標誌位(從右向左)
j =1#被乘數標誌位(從右向左)
nums =
0#存放最終結果
nums_2 =
#存放某一位乘數與整個被乘數成績的結果
while i <=
len(num2)
: nums_1 =
#存放某位乘數對所有被乘數按位依次乘積的結果(一位數對一位數的乘積)
nums_sum =
0#計算某一位乘數與整個被乘數成績的結果
while j <=
len(num1)
:int
(num1[
-j])
*int
(num2[
-i])
*pow(10
,j-1))
j +=
1for x in nums_1:
nums_sum += x
pow(
10,i-1)
) i +=
1 j =
1for y in nums_2:
nums += y
return
str(nums)
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 字串相乘
給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110。nu...