43. 字符串相乘

2023-10-31

43. 字符串相乘

注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。

示例 1:
输入: num1 = "2", num2 = "3"
输出: "6"
示例 2:
输入: num1 = "123", num2 = "456"
输出: "56088"
提示:
1 <= num1.length, num2.length <= 200
num1 和 num2 只能由数字组成。
num1 和 num2 都不包含任何前导零,除了数字0本身。

题解

1. 逃课

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

但是题目说了不能直接把输入转换为整数。

2. 模拟乘法竖式

请添加图片描述

num2为乘数,num1为被乘数。去被乘数里的每一位与乘数相乘(其实这里还是直接讲num2给整数话了),得到的结果存放进列表里,然后再统一处理进位、退位问题。

最后统计一下结果,输出

class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        if num1 == "0" or num2 == "0":
            return "0"
        
        m, n = len(num1), len(num2)
        ansArr = [0] * (m + n)
        for i in range(m - 1, -1, -1):
            x = int(num1[i])
            for j in range(n - 1, -1, -1):
                ansArr[i + j + 1] += x * int(num2[j])
        
        for i in range(m + n - 1, 0, -1):
            ansArr[i - 1] += ansArr[i] // 10
            ansArr[i] %= 10
        
        index = 1 if ansArr[0] == 0 else 0
        ans = "".join(str(x) for x in ansArr[index:])
        return ans

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

43. 字符串相乘 的相关文章

随机推荐

  • 五、elasticsearch、kibana环境搭建

    一 软件准备 jdk 8u251 linux x64 tar gz elasticsearch 6 8 18 tar gz 下载 kibana 6 8 18 linux x86 64 tar gz elasticsearch analysi
  • SSAS教程(一)——SSAS简介

    SSAS全称SQL Server Analysis Services Analysis Services 是在决策支持和商业分析中使用的分析数据引擎 它为商业报表和客户端应用程序提供了企业级语义数据模型 比如Power BI Excel R
  • 自定义Flink消费和生产Kafka消息(消费时Schema、生产时Key&Value&分区)

    当我们在消费Kafka数据时 比较常用的是SimpleStringSchema 我个人比较喜欢用的是JSONKeyValueDeserializationSchema 上述两个API可以完成绝大多数的开发场景 但是但遇到个别的特殊场景时 我
  • Qt——加载qss文件简单用法

    1 新建后缀名为 qss的通用文件 添加需要实现的样式代码 2 在资源文件中添加刚刚新建的 qss文件 3 main函数添加以下代码 int main int argc char argv QApplication a argc argv
  • 用服务器怎么修改奥的斯的速度,奥的斯服务器使用指南-20210412074643.pdf-原创力文档...

    OTIS电梯 电脑软件画面 1 2 com com com com 3 4 Disp Ent M 7 8 9 state D E F call Test F 4 5 6 Disp A sel B 开始 In out S 1 2 3 ON U
  • texture和sprite使用上的区别

    1 什么情况下使用Texture 当图片过大 不适合合成图集的时候 可以使用Texture 此时要尽量的保证图片的宽高是2的N次方 使用的地方少 当图片为2的N次方 且出现的频率不高时 可以使用Texture 例如游戏的背景和Logo 需要
  • gzip: stdin: unexpected end of file Linux解压文件出错

    root localhost jdk1 8 tar zxvf jdk 8u161 linux x64 tar gz jdk1 8 0 161 jdk1 8 0 161 javafx src zip gzip stdin unexpected
  • 【计算机网络】HTTP首部详解

    HTTP首部详解 HTTP 协议的请求和响应报文中必定包含 HTTP 首部 首部内容为客户端和服务端分别处理请求和响应提供所需要的信息 对于客户端用户来说 这些信息中的大部分内容都无需亲自查看 1 HTTP请求报文 2 HTTP响应报文 3
  • Java 动态代理简单使用

    Java简单的动态代理 项目结构 dao包 public interface UserInfodao public boolean LoginCheck String username String password void listAl
  • mongodb 查询效率_2020年9个好用的MongoDB 图形化界面工具

    市场上有许多MongoDB管理工具 这些工具可以提高MongoDB开发和管理的效率 下面我们就列举一些2020年好用的mongo管理工具 1 NoSQLBooster 用于MongoDB的NoSQLBooster 以前称为MongoBoos
  • 如何将Spotify音乐下载并保存为MP3

    Spotify歌曲采用原始的OGG Vorbis格式 具有DRM保护 可防止您下载并将其分发到其他地方以供欣赏 得益于精心设计的DRmare Spotify Music Converter for Mac 您现在可以批量下载Spotify曲
  • 【操作系统】浅谈 Linux 中的中断机制

    操作系统 浅谈 Linux 中的中断机制 参考资料 2015 SP 北京大学 Principles of Operating System 操作系统原理 by 陈向群 p7 p10 认认真真的聊聊中断 什么是软中断 认认真真的聊聊 软 中断
  • iOS实现麦克风捕获和AAC编码

    转载地址 http blog csdn net shenyi0106 article details 47004039 在Ios中 实现打开和捕获麦克风大多是用的AVCaptureSession这个组件来实现的 它可以不仅可以实现音频捕获
  • 调试破解无限dubugger

    目标网站上PM2 5实时查询 PM2 5历史数据查询 PM2 5全国城市排名 PM2 5雾霾地图 中国空气质量在线监测分析平台 真气网 首先要确定是否是虚拟机 虚拟机https www aqistudy cn 明显的特征虚拟机一般源文件上会
  • Hutool常用工具类及方法使用

    Hutool常用工具类及方法使用 依赖注入 类型转换工具类 Convert 时间工具类 DateUtil 字符串工具类 StrUtil 身份证验证工具 IdcardUtil 控制台打印 Console 依赖注入
  • 每秒上千次高并发访问,HDFS优雅的抗住了

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 一 写在前面 二 问题源起 三 HDFS优雅的解决方案 1 分段加锁机制 内存双缓冲机制 2 多线程并发吞吐量的百倍优化 3 缓冲数据批量刷磁盘 网络优化 一
  • 如何在navicat for mysql画图(建模型)并直接生成

    1 登录进数据库后 点击模型 新建模型 如下 2 点击 小手 下面的图标 双击右边的空白处 即出现一个表格 可命名 此时我们命名为A 3 双击A表下空白处 即可设计A表属性 点确定 如下 4 同理 生成一个B表 加粗样式 5 如何让A B表
  • 特征归一化优点

    什么是特征归一化 数据的标准化 normalization 是将数据按比例缩放 使之落入一个小的特定区间 在某些比较和评价的指标处理中经常会用到 去除数据的单位限制 将其转化为无量纲的纯数值 便于不同单位或量级的指标能够进行比较和加权其中最
  • dsolve函数的功能_为什么Mathematica的DSolve函数会解不出显式解??

    In 6 DSolve v t 3 v t 2 v t 2 v t 2 2 v t v t v t t Out 6 v t gt E t Sqrt C 1 Tan E t Sqrt C 1 C 2 说明书里面是这么说的 DSolve inc
  • 43. 字符串相乘

    43 字符串相乘 注意 不能使用任何内置的 BigInteger 库或直接将输入转换为整数 示例 1 输入 num1 2 num2 3 输出 6 示例 2 输入 num1 123 num2 456 输出 56088 提示 1 lt num1