zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):字符串类:第43题:字符串相乘:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

    题目:
    字符串相乘:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

    说明:

    num1 和 num2 的长度小于110。
    num1 和 num2 只包含数字 0-9。
    num1 和 num2 均不以零开头,除非是数字 0 本身。
    不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。

    思路:

    模拟乘法计算的过程来实现。

    程序:

    class Solution:
        def multiply(self, num1: str, num2: str) -> str:
            if num1 == "0" or num2 == "0":
                return "0"
            length1 = len(num1)
            length2 = len(num2)
            if length1 >= 110:
                return " "
            if length2 >= 110:
                return " "
            auxiliary = [0 for _ in range(length1 + length2)]
            num1_reversed = list(reversed(num1))
            num2_reversed = list(reversed(num2))
            index1 = length1 + length2 - 1
            for digit1 in num1_reversed:
                auxiliary_index = index1
                for digit2 in num2_reversed:
                    auxiliary[auxiliary_index] = auxiliary[auxiliary_index] + int(digit1) * int(digit2)
                    auxiliary[auxiliary_index - 1] = auxiliary[auxiliary_index - 1] + auxiliary[auxiliary_index] // 10
                    auxiliary[auxiliary_index] = auxiliary[auxiliary_index] % 10
                    auxiliary_index = auxiliary_index - 1
                index1 = index1 - 1
            index2 = 0
            while index2 < len(auxiliary):
                if auxiliary[index2] == 0:
                    index2 = index2 + 1
                else:
                    break
            result = ""
            for index3 in auxiliary[index2:]:
                result = result + str(index3)
            return result
  • 相关阅读:
    喵哈哈村的魔法考试 Round #19 (Div.2) B 快速加
    hdu5676 ztr loves lucky numbers DFS
    hdu 5950 Recursive sequence 矩阵快速幂
    AI大语音(三)—傅里叶变换家族
    AI大语音(二)——语音预处理
    AI大语音(一)——语音识别基础
    第二章:声学模型之EM算法
    量子力学2
    量子力学1
    C#学习系列(一)——C#和C++的区别
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12849993.html
Copyright © 2011-2022 走看看