第十二题
题目
43. 字符串相乘
给定两个以字符串形式表示的非负整数 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)或直接将输入转换为整数来处理。
思想
第一种:str转int,相乘,再转str
第二种:首先,先把str转成List,相乘再相加
代码
class Solution:
def multiply(self, num1: str, num2: str) -> str:
#第一种
#return str(int(num1)*int(num2))
#第二种
sum=0
list1,list2=[],[]
for i in range(len(num1)):
list1.append(int(num1[i])*10**(len(num1)-i-1))
for j in range(len(num2)):
list2.append(int(num2[j])*10**(len(num2)-j-1))
for i in list1:
for j in list2:
sum+=i*j
return str(sum)