LeetCode-43. 字符串相乘【数学 字符串 模拟】

LeetCode-43. 字符串相乘【数学 字符串 模拟】

  • 题目描述:
  • 解题思路一:模拟乘法,两个数中每一位数相乘的时候乘上他们各自的进制数,之后求和。循环时,分别记录各自的进制数
  • 背诵版:
  • 解题思路三:0

题目描述:

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

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

示例 1:

输入: num1 = “2”, num2 = “3”
输出: “6”
示例 2:

输入: num1 = “123”, num2 = “456”
输出: “56088”

提示:

1 <= num1.length, num2.length <= 200
num1 和 num2 只能由数字组成。
num1 和 num2 都不包含任何前导零,除了数字0本身。

解题思路一:模拟乘法,两个数中每一位数相乘的时候乘上他们各自的进制数,之后求和。循环时,分别记录各自的进制数

'123' * '456'  的求和过程就等于
=
# 3分别与6、5、4相乘,并乘上456各自的进制数1、10、100,使用for循环遍历就行了
+ 3       * 6     + 3       * 5 * 10  + 3       * 4 * 100
+ 2 * 10  * 6     + 2 * 10  * 5 * 10  + 2 * 10  * 4 * 100
+ 1 * 100 * 6     + 1 * 100 * 5 * 10  + 1 * 100 * 4 * 100求和
class Solution:def multiply(self, num1: str, num2: str) -> str:f1 = 1ans = 0# 倒序遍历for i in range(len(num1)-1,-1,-1):# 进位数f2 = 1# n1 乘以进位数n1 = int(num1[i]) * f1# 倒序遍历for j in range(len(num2)-1,-1,-1):n2 = int(num2[j]) * f2   ans += n1 * n2 # 进位数处理 *10f2 *=10f1 *=10return str(ans)

时间复杂度:O(n)
空间复杂度:O(n)

背诵版:

class Solution:def multiply(self, num1: str, num2: str) -> str:f1 = 1ans = 0for i in range(len(num1)-1,-1,-1):f2 = 1n1 = int(num1[i]) * f1for j in range(len(num2)-1,-1,-1):n2 = int(num2[j]) * f2   ans += n1 * n2 f2 *=10f1 *=10return str(ans)

时间复杂度:O(n)
空间复杂度:O(n)

解题思路三:0


时间复杂度:O(n)
空间复杂度:O(n)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目-双人五子棋对战:匹配模块的实现(3)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 模块详细讲解 功能需求 匹配就类似于大家平常玩的王者荣耀这样的匹配功能, 当玩家点击匹配之后, 就会进入到一个匹配队列, 当匹配到足够数量的玩家后, 就会进入确认页. 在这里, 我们主要实现的是1 - 1匹配功能, 首先先…

注册windows系统服务

目录 一、把任意exe程序注册成windows系统服务 二、将bat文件或exe程序注册成windows服务 三、设置window服务示例 1、redis 2、ActiveMQ 3、tomcat 4、nginx 一、把任意exe程序注册成windows系统服务 1、方法一&#xff1a;使用windows自带的命令InstallUtil.exe 步骤…

每日一练 - BGP协议报文发送机制

01 真题题目 BGP 协议的报文都是周期性发送. A.正确 B.错误 02 真题答案 B 03 答案解析 BGP&#xff08;Border Gateway Protocol&#xff09;边界网关协议并不定期或周期性发送其报文。与某些路由协议&#xff08;如RIP&#xff09;不同&#xff0c;BGP采用触发更新&#x…

pycharm链接auto al服务器

研0提前进组&#xff0c;最近阻力需求是把一个大模型复现&#xff0c;笔者电脑18年老机子&#xff0c;无法满足相应的需求。因此租用auto dl服务器。本文记录自己使用pycharm&#xff08;专业版&#xff09;链接auto dl期间踩过的坑。 1.下载pycharm专业版 这一步不解释了&am…

逐步掌握最佳Ai Agents框架-AutoGen 九 RAG应用

在最近的几篇文章里&#xff0c;我们使用AutoGen实现了一些Demo。这篇文章&#xff0c;我们将使用AutoGen来完成RAG应用开发。 RAG应用 RAG全称"Retrieval-Augmented Generation",即检索增强生成&#xff0c;它是自然语言处理中的一项技术。这种模型结合了检索式&a…

Latex之图片排列的简单使用(以MiKTeX工具为例)

一、参考资料 Latex如何插入图片 Latex 学术撰写工具推荐&#xff08;在线、Windows、Mac、Linux&#xff09; 关于Latex并排多张图片及加入图片说明的方法 二、准备工作 1. 在线LaTex工具 Overleaf 2. 本地LaTex工具 MiKTeX 3. 测试用例 \documentclass{article} \ti…

【Vue】computed 计算属性 VS methods 方法

文章目录 一、computed 计算属性二、methods 方法 一、computed 计算属性 作用&#xff1a;封装了一段对于数据的处理&#xff0c;求得一个结果&#xff0c;而且还可以拿这个结果去缓存。 语法&#xff1a; ① 写在 computed 配置项中 ② 作为属性&#xff0c;直接使用 → …

拓展商机的金钥匙:成为SSL证书合作商的长期回报

在当今数字化浪潮中&#xff0c;网络安全已经成为企业生存和发展不可或缺的一部分。随着在线交易和数据交换的增多&#xff0c;SSL证书作为保障网站安全和增强用户信任的关键工具&#xff0c;其重要性日益凸显。成为SSL证书的合作商后&#xff0c;不仅能够立即开启新的收入来源…

解决微信小程序分享按钮不可用

问题描述 在微信小程序中点击胶囊按钮上的三个点&#xff0c;在弹出的对话框中的【分享给好友】【分享到朋友圈】按钮都属于不可用的状态&#xff0c;显示未设置。 问题截图 解决方案 在每个需要此功能的页面都需要添加此代码&#xff0c;否则就不能进行使用。 // vue3时&l…

证件照太大了怎么压缩到100k?6个软件教你快速进行压缩

证件照太大了怎么压缩到100k&#xff1f;6个软件教你快速进行压缩 压缩证件照大小通常需要使用专门的图片压缩工具或者图片编辑软件。以下是六款常用的软件&#xff0c;它们可以帮助你快速压缩证件照大小到100KB以内&#xff1a; 1.迅捷压缩&#xff1a;这是一款图片压缩工具…

应用程序加固的优势及其在移动应用安全中的重要性

哈喽&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;现如今移动应用已成为人们生活和工作的重要组成部分。然而&#xff0c;随着移动应用的普及&#xff0c;安全威胁也在不断增加&#xff0c;用户的个人信息和机密数据面临着被窃取和篡改的风险。为了应对这…

Linux c fread/fseek 函数

函数&#xff1a;fread size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 参数说明&#xff1a; 参数 buffer 指向要读取的数组中首个对象的指针 size 每个对象的大小&#xff08;单位是字节&#xff09; count 要读取的对象个数 stream 输入流 …

【WP|8】深入解析WordPress钩子函数

钩子函数&#xff08;Hook&#xff09;是WordPress插件和主题开发中最重要的概念之一。钩子函数允许开发者在特定的时刻或事件发生时插入自定义代码&#xff0c;以改变WordPress的默认行为或者添加新功能。钩子分为两种主要类型&#xff1a;动作&#xff08;Actions&#xff09…

【Kubernetes】k8s的调度约束(亲和与反亲和)

一、调度约束 list-watch 组件 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 Node 节点上面建立 Pod 和…

Java使用正则表达式匹配以某个字符开始,某个字符结束

前言 好久没用regex了,之前用的贼溜的东西都忘完了,这次遇到一个东西恰好我觉得用正则表达式会方便一点,所以把这次的开发过程记录一下 这遍文章包括Java如何使用正则表达式去匹配解决正确的表达式却匹配不到数据的问题使用正则表达式却出现栈溢出的问题背景需求 首先我会根…

django连接达梦数据库

为了在Django中连接达梦数据库&#xff0c;你需要确保你有达梦的数据库驱动。Django默认支持的数据库有PostgreSQL, MySQL, SQLite, Oracle等&#xff0c;但不包括达梦数据库。不过&#xff0c;对于大多数数据库&#xff0c;Django的数据库API是通用的&#xff0c;你可以通过第…

每天的CTF小练--6.5(ascll码高级运用)

题目&#xff1a;[HUBUCTF 2022 新生赛]baby_encrypt hint&#xff1a; 781612443113954655886887407898899451044114412011257135914071455155316031651170318041861191719652013207021272183228423832485254125932643269827992924 注意查看前面的数字&#xff0c;这题不想现…

浮点数与0比较

浮点数与0比较-CSDN博客 本来摘录自上面的文章,用以学习!感谢! #include <QString> #include <QDebug> #include <stdio.h> int main() {double x3.6;printf("%.50f\n",x);system("pause");return 0; }3.6000000000000000888178419700…

多线程最佳实践

异步线程阻塞等待完成 当你遇到一个场景&#xff0c;需要同时启动多个任务&#xff0c;并等待所有任务完成后执行后续操作。这个方法很有用&#xff0c;比如你需要执行三个下载任务&#xff0c;当三个任务都下载完成后你才通知界面说完成&#xff0c;这个时候如果一个个去下载…

Mybatis01-初识Mybatis

简介 1、 什么是Mybatis MyBatis 是一款优秀的持久层框架; 它支持自定义 SQL、存储过程以及高级映射 MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff08;Plain Ol…