[Python手撕]字符串相乘

class Solution:
    def multiply(self, num1: str, num2: str) -> str:

        def multi(num1,num2):
            return (ord(num1)-ord('0')) * (ord(num2)-ord('0'))

        n = len(num1)
        m = len(num2)

        nums = []
        # 双重循环获取每个数位组合的乘积
        for i in range(m-1,-1,-1):
            temp = [0]*n
            for j in range(n-1,-1,-1):
                temp[j] = multi(num1[j],num2[i])

            # 把 10 10改成 1 1 0
            for j in range(n-1,-1,-1):
                if temp[j] >= 10 and j >0:
                    temp[j-1] += 1
                    temp[j] -= 10
                elif temp[j] >= 10 and j==0:
                    temp[j] -= 10
                    temp.insert(0,1)
            # 把1 1 0改成 110
            num = 0
            for t in temp:
                num *= 10
                num += int(t)
            nums.insert(0,num)


        res = 0
        for n in nums:
            res *= 10
            res += n
        return str(res)

作者:Esofar

出处:https://www.cnblogs.com/DCFV/p/18439361

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Duancf  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示