LeetCode筆記 43字串相乘

2021-08-28 19:25:37 字數 1336 閱讀 7410

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

示例 1:

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

輸出: "6"

示例 2:

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

輸出: "56088"

說明:

num1num2的長度小於110。

num1num2只包含數字0-9

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

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

思路:高精度乘法

提交的**:

網上大神的**。先把字串進行反轉,然後對應位置相乘處理好進製。

class solution         

return sb.tostring();}}

補充一點內容

stringbuffer是執行緒安全的,多用於多執行緒。
執行最快**:

高精度乘法,類似於手算乘法。將字串轉化為字元陣列,對應位置相乘,同時注意進製的處理。可以余弦估計下結果的最大長度,比如說兩個字串的長度之和。

(1)把字串轉換為整數陣列。首先利用tochararray()轉化為字元陣列;然後陣列中的每乙個元素減去『0』字元0變為整數

class solution 

for (int i = 0; i < n; i++)

int i,j,k;

for (i = 0; i < m; i++)

k = i + j;

while(carry != 0)

}int p = m + n - 1;

stringbuilder sb = new stringbuilder(p);

while(p > 0 && result[p] == 0)

while(p >= 0)

return sb.tostring();

}}

字串 leetcode 43 字串相乘

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

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