·43字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。
示例 1:
输入: num1 = "2", num2 = "3"
输出: "6"
示例 2:
输入: num1 = "123", num2 = "456"
输出: "56088"
·解题思路
题目要求不能使用库函数实现数字和字符串的转换。
我的思路是写两个子函数,实现字符串和数字的转换。但是在 子函数中,用了int和“{}”.fomat()两个函数按位转换。不知道符不符合题目要求,看评论区,好多解题都是按位转。
——————————————————————————
官方解题也使用了int和str,ok没问题了
·代码
class Solution(object):
def multiply(self, num1, num2):
def dig_to_num(dig):
Num = 0
for i in range(len(dig)):
a = int(dig[i]) * pow(10, len(dig) - 1 - i)
Num += a
return Num
def num_to_dig(num):
if num == 0:
return '0'
result = ''
while num > 0:
last = num % 10
last = "{}".format(last)
result = last + result
num = num // 10
return result
Num1 = dig_to_num(num1)
Num2 = dig_to_num(num2)
res = Num1 * Num2
res = num_to_dig(res)
return res