leetcode 43 字串相乘

2021-10-02 16:30:10 字數 1305 閱讀 2957

這種方法就是按照我們通常的思路,讓乙個數和另乙個數的每一位相乘,然後把結果加起來。其中我用到了兩個輔助函式:

字串相加。也就是兩個字串相加得到乙個結果

乙個字串和乙個字元相乘,得到乙個字串

但是我寫的**有問題,就是當乙個數為0的情況時,會返回多個0。但看通過率的話我只有5個測試用例沒有通過,也就不想改了。畢竟時間太緊張,沒時間了。**如下:

class

solution

return result;

}private string multi

(string num,

char c)

if(carry !=0)

//將有效的carry放到結果中

sb.(carry)

;return sb.

reverse()

.tostring()

;}//兩個數字相加

private string add

(string num1, string num2)

else

sb.(sum %10)

;//將結果所得餘數拼接起來}if

(carry ==1)

sb.(carry)

;//將有效的進製也拼接起來

return sb.

reverse()

.tostring()

;//逆序輸出

}}

該演算法是通過兩數相乘時,乘數某位與被乘數某位相乘,與產生結果的位置的規律來完成。具體規律如下:

結合下圖更容易理解:

**如下:

class

solution

int[

] res =

newint

[num1.

length()

+ num2.

length()

];for(

int i = num1.

length()

-1; i >=

0; i--)}

stringbuilder result =

newstringbuilder()

;for

(int i =

0; i < res.length; i++

)return result.

tostring();}}

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