43 字串相乘

2021-09-11 16:27:09 字數 1497 閱讀 1672

題目描述:

給定兩個以字串形式表示的非負整數 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)或直接將輸入轉換為整數來處理。

解題思路:

首先我考慮的是按照題目的要求 按步驟走,先將字串轉換為整數,再將相乘得到的整數轉回字串。

附上**:

class solution 

//字串轉整數

public static int stringtoint(string s)

return sum;

}//整數轉字串

public static string inttostring(int num)

}

執行結果:

主要思想就是將每一位與另乙個整數的每一位做乘法,求得乘積,將乘積的每一位分解為各個位,個位結果與本位的進製數相加保留在本位,本位的進製數與結果中的進製數相加保留在進製位。依次類推。

**實現:

class solution 

int length1 = num1.length();

int length2 = num2.length();

int result = new int[length1 + length2];

for(int j = length2 - 1;j >= 0;j--)

}

//去掉前導0

stringbuilder builder = new stringbuilder();

for (int i : result)

}return builder.length() == 0? "0" : builder.tostring();

}}

執行結果:

43 字串相乘

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

43 字串相乘

小聲bb,直接int 多好 既然題目要求不能直接用int 我只好開動我的大腦開始想有什麼解決方案。然後首先想到的就是小學時候老師教乘法時用乘式寫法。1 2 3 4 5 6 1 5 4 9 2 5 5 3 51 2 3 4 5 1 51 0 0 5 0 6 1 5 1 20 8 0 4 0 5 5 3...

43 字串相乘

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