LeetCode C 43 字串相乘

2021-10-10 00:03:54 字數 1056 閱讀 5121

給定兩個以字串形式表示的非負整數 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.特殊情況,若有乙個為 「0」,返回 「0」。

2.從後往前遍歷字串 num2 的元素 num2[ i ],num2[ i ] 與 num1 相乘,獲取單次相乘的結果。在這裡我們根據元素的位置 i ,對單次相乘的結果的末尾添上「 0」,這是為了方便字串相加,不用對齊了。

3. 定義字串相加函式,每次獲取單次相乘的結果,則將其加到總的結果上。

涉及到較多的字串轉換。

**:

class

solution

return res;

} string multiply

(string num1, string num2)

res=

stringadd

(res,tmp_s);}

return res;}}

;

結果:

LeetCode Python 43 字串相乘

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

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