43. 字符串相乘

题目描述

给定两个以字符串形式表示的非负整数 num1num2,返回 num1num2 的乘积,它们的乘积也表示为字符串形式。

示例 1:

输入: num1 = "2", num2 = "3"
输出: "6"

示例 2:

输入: num1 = "123", num2 = "456"
输出: "56088"

解析

模拟乘法计算过程实现

我的代码

class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        if num1 == '0' or num2 == '0':
            return '0'

        l1, l2 = len(num1), len(num2)
        k = [0 for i in range(l1+l2)]
        num1, num2 = num1[::-1], num2[::-1]

        for i in range(l1):
            for j in range(l2):
                k[i+j] += int(num1[i]) * int(num2[j])

        for i in range(l1 + l2):
            if k[i] >= 10:
                k[i+1] += k[i] // 10
                k[i] = k[i] % 10

        res = "".join(str(x) for x in k[::-1])
        res = res.lstrip('0') # 去除前导0

        return res

展开阅读全文
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值