zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【LeetCode】43. 字符串相乘

LeetCode 字符串 43 相乘
2023-09-14 09:13:24 时间

1 题目

2 思想

其实就是计算大整数乘法,还是比较简单的是吧。我觉得主要问题在于要熟悉各种常用的api,比如字符串翻转, enumerate 的使用等等。

3 代码

class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        num1 = "".join(reversed(num1)) 
        num2 = "".join(reversed(num2))
        
        # 将两者翻转
        res = [] # 记录所有的和
        base = 1
        for idx,a in enumerate(num1):
            flag = 0 # 进位
            tmp = ""
            for b in num2:
                cur = int(a) * int(b) + flag
                flag, remain = divmod(cur,10)
                tmp=str(remain) + tmp 
                # print(a,b,flag,tmp)
            
            if flag: # 如果有进位
                tmp = str(flag) + tmp
            res.append(int(tmp)*base)# 转为int
            base *= 10
        # 对res求和
        return str(sum(res))