当前位置: 首页 > article >正文

leetcode43字符串乘法

竖式乘法

就是我们平时计算乘法时采用的方法,多位数×一个数,再将每一次乘得的数按照这个数对应的位次加起来

暴力算法

将每一位×每一位,再根据位次×相应的10^n,最后加起来

我刚开始看题目的时候我都没搞懂什么叫做不能将输入直接转换为整数,然后我就直接去看题解,结果更懵了,题解不还是将其转换为整数吗,而且你既然都已经将第一个数转为原先的整数了,为啥不直接将第二个也这样做,然后直接乘起来?我搞不懂为什么要绕一个大圈去做竖式乘法,我不理解,但我还是照着竖式乘法的去做了一遍,感觉题目的限制没有说清楚

  • 哦对,注意0*任何数为0

代码

竖式乘法

def multiply(self, num1, num2):
        if num1=="0" or num2=="0":
            return "0"
        m,n=len(num1),len(num2)
        p,q,b=0,0,0
        for i in range(m-1,-1,-1):
            a=int(num1[i])*(10**p)
            q=a+q
            p+=1
        p=0
        for j in range(n-1,-1,-1):
            a=int(num2[j])*q
            b+=a*(10**p)
            p+=1
        return str(b)

暴力

注意每次循环第二个数的时候要将它的次数清零,否则会算出来一个很大很大的数

def multiply(self, num1, num2):
        if num1=="0" or num2=="0":
            return "0"
        m,n=len(num1),len(num2)
        b,p=0,0
        for i in range(m-1,-1,-1):
            q=0
            for j in range(n-1,-1,-1):
                a=int(num1[i])*int(num2[j])
                b+=a*10**(p+q)
                q+=1
            p+=1
        return str(b)

http://www.kler.cn/news/288424.html

相关文章:

  • 梯度提升机:数据分析的强有力工具
  • webpack-01
  • 【HarmonyOS 4.0】网络请求 - axios
  • Spring Boot实现发QQ邮件
  • Windows环境Chrome安装提示无可用更新问题解决【2024年版】
  • 【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统
  • 前端js—实现字符串拼接
  • 驱动和固件的区别 — 简单介绍
  • 美国海外仓可以用哪家海外仓系统好?
  • JDS汽车检测主要内容
  • 科研论文必须要了解的25个学术网址
  • 2024数博会技术成果回顾 | KPaaS助力企业数智化转型
  • STM32——Flash闪存
  • 人脸表情识别/情绪识别的参考参数及相关开源产品汇总
  • LLM大模型教程:低使用门槛开源大模型服务框架Ollama
  • 提升效率!ArcGIS中创建脚本工具
  • 压缩大型语言模型 LLMs
  • 智能提醒助理系列-Nginx搭建
  • MySQL高级课程:索引设计与性能优化的最佳实践
  • 为初学者简单易懂地讲解Transformer的基础知识是什么?
  • vue,小程序,uni-app的生命周期
  • 【HarmonyOS 4.0】鸿蒙应用模型
  • [Algorithm][综合训练][kotori和n皇后][取金币][矩阵转置]详细讲解
  • 【JavaEE初阶】HTTP请求(Request)
  • 某付宝又火了!什么样的人能够申请网商贷?个人也能申请吗?
  • Java基于微信小程序的超市购物管理系统
  • golang中return和defer的执行顺序的一道题
  • 华为与联发科的专利博弈:技术较量还是市场重塑?
  • 【区块链 + 物联网】斐得坊智慧停车区块链 | FISCO BCOS应用案例
  • 【教程】2024.09.03 Qlib数据加载器以及数据集加载器 Alpha158 Aplha360详细的讲解,以及源码