各大搜索引擎提交網(wǎng)站入口大全網(wǎng)站的營(yíng)銷(xiāo)推廣
1 問(wèn)題
給定兩個(gè)以字符串形式表示的非負(fù)整數(shù) num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字符串形式。
注意:不能使用任何內(nèi)置的 BigInteger 庫(kù)或直接將輸入轉(zhuǎn)換為整數(shù)。
示例 1:
輸入: num1 = “2”, num2 = “3”
輸出: “6”
示例 2:
輸入: num1 = “123”, num2 = “456”
輸出: “56088”
2 答案
這題直接不會(huì)
官方解,也用了int轉(zhuǎn)換成整型,只不過(guò)是把單個(gè)字符轉(zhuǎn)成int
class Solution:def multiply(self, num1: str, num2: str) -> str:if num1=='0' or num2=='0':return '0'm, n = len(num1), len(num2)ansArr = [0] * (m+n)for i in range(m-1, -1, -1):for j in range(n-1, -1, -1):ansArr[i+j+1] += int(num1[i])*int(num2[j])for i in range(m+n-1, 0, -1): # 進(jìn)位ansArr[i-1] += ansArr[i] // 10ansArr[i] %= 10index = 1 if ansArr[0] == 0 else 0ans = "".join(str(x) for x in ansArr[index:])return ans
n u m 1 num1 num1 和 n u m 2 num2 num2 的乘積的最大長(zhǎng)度為 m + n m+n m+n, n u m 1 [ i ] × n u m 2 [ j ] num1[i]×num 2[j] num1[i]×num2[j] 的結(jié)果位于 a n s A r r [ i + j + 1 ] ansArr[i+j+1] ansArr[i+j+1]