Loading

[字符串运算]字符串相乘

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)
posted @ 2024-09-29 11:45  Duancf  阅读(12)  评论(0)    收藏  举报