LeetCode:43. 字符串相乘(python)
给定两个以字符串形式表示的非负整数 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)或直接将输入转换为整数来处理。
分析:
- 乘法规则
- 要求不能使用 int() 进行转换,我用的 ord(),通过字符串的 ASCII 编码来获取数字
附代码(Python3):
class Solution:
def multiply(self, num1, num2):
if num1=='0' or num2=='0':
return '0'
res = 0
for i in range(1, len(num1)+1):
for j in range(1, len(num2)+1):
res += (ord(num1[-i])-ord('0')) * (ord(num2[-j])-ord('0')) * 10**(i+j-2)
return str(res)
test = Solution()
num1_li = ["2", "123"]
num2_li = ["3", "456"]
for num1, num2 in zip(num1_li, num2_li):
print(test.multiply(num1, num2))
6
56088
来源:CSDN
作者:痴迷、淡然~
链接:https://blog.csdn.net/qq_36512295/article/details/100688352