43. 字符串相乘

43.字符串相乘 43.字符串相乘 1. 题目描述 题目链接 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = “2”, num2 = “3” 输出: “6” 示例 2: 输入: num1 = “123”, num2 = “456” 输出: “56088” 说明: num1 和 num2 的长度小于1... 阅读详情
/**
 * 43. 字符串相乘
 * @author wsq
 * @date 2020/8/13
	 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
	
	示例 1:
	输入: num1 = "2", num2 = "3"
	输出: "6"

	示例 2:
	输入: num1 = "123", num2 = "456"
	输出: "56088"

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

	链接:https://leetcode-cn.com/problems/multiply-strings
 */
package code.wsq.notsubmit;

public class StringMultiply {
	/**
	* 采用基本每位相乘后再相加的思想
	* 其中与我们自己做乘法不同的地方是
	* 除了乘数的个位数以外,其他的位都需要向后补0
	*/
	public String multiply(String num1, String num2) {
		if(num1.equals("0") || num2.equals("0")) {
			return "0";
		}
		String ans = "0";
		int n = num1.length();
		int m = num2.length();
		
		for(int i = n-1; i >= 0; --i) {
			StringBuilder curr = new StringBuilder();
			for(int j = n-1; j > i; --j) {
				curr.append("0");
			}
			
			int add = 0;
			int x = num1.charAt(i) - '0';
			for(int j = m-1; j >= 0; --j) {
				int y = num2.charAt(j) - '0';
				int result = x * y + add;
				curr.append(result % 10);
				add = result / 10;
			}
			if(add != 0) {
				curr.append(add % 10);
			}
			ans = addStrings(ans, curr.reverse().toString());
		}
		return ans;
	}
	public String addStrings(String num1, String num2) {
		StringBuilder ans = new StringBuilder();
		int i = num1.length() - 1;
		int j = num2.length() - 1;
		int add = 0;
		while(i >= 0 || j >= 0 || add != 0) {
			int x = i >= 0 ? num1.charAt(i) - '0' : 0;
			int y = j >= 0 ? num2.charAt(j) - '0' : 0;
			int result = x + y + add;
			ans.append(result % 10);
			add = result / 10;
			i--;
			j--;
		}
		ans.reverse();
		return ans.toString();
	}
	
	public static void main(String[] args) {
		String num1 = "12";
		String num2 = "12";
		StringMultiply sm = new StringMultiply();
		String ans = sm.multiply(num1, num2);
		System.out.println(ans);
	}
}

43. Multiply Strings(字符串相乘)解法(C++ & 注释) 43. Multiply Strings(字符串相乘)1. 题目描述2. 乘法(Multiplication)2.1 解题思路2.2 实例代码 1. 题目描述 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = “2”, num2 = “3” 输出: “6” 示例 2: 输入: num1 = “123”, num2 = “456” 输出: “56088” 说明: num1 和 num2 阅读详情

相关推荐

LeetCode 第43题:字符串相乘

通过对LeetCode第43题——字符串相乘的详细剖析,我们学习了如何用代码来模拟手工乘法的过程。这个题目不仅让我们重温了小学的数学知识,还让我们在编程中体会到了解决问题的成就感。在这篇文章中,我们详细讲解了代码的实现逻辑,并通过Mermaid图展示了代码的流程。希望通过这些例子和解析,能帮助大家更好地理解这道题目的解题思路和实现方法。记住,编程的乐趣在于解决问题的过程,而不是一味追求结果。愿你在编程的道路上,越挫越勇,继续探索新的技术和方法!

Gemini的博客 271

Leetcode 43. 字符串相乘

题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = “2”, num2 = “3” 输出: “6” 示例 2: 输入: num1 = “123”, num2 = “456” 输出: “56088” 说明: num1 和 num2 的长度小于110。 num1 和 num2...

LetJava的博客 363

windows中如何将已安装的nodejs高版本降级为低版本

第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑左面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并

weixin_44582077的博客 9万+

leetcode 43 : 字符串相乘

leetcode 43 : 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 = "2", num2 = "3" 输出: "6" 示例 2: 输入: num1 = "123", num2 = "456" 输出: "56088" 提示: 1 <= num1.length, nu

yingmu__的博客 680

NLP DAY1: 文本数据读取

txt 文本数据的读写CSV 及 Excel 文本数据的读写更多的 DataFrame 操作数据规模太大怎么办相信通过本次实验的学习,同学们可以游刃有余地面对各种数据文件了。在接下来的实验中,我们将开始真正地开启自然语言处理之旅,开始认识并熟悉一些常见的针对文本本身的预处理操作。

feifeikon的博客 1058

【SEW-伺服电机-Profinet-io通讯控制——伺服配置】

SEW-伺服电机-Profinet-io通讯控制——伺服配置一、本次使用配置说明编写经历受国际形式与疫情影响相关资料查询阅读测试验证不易二、伺服配置流程1.基本准备条件2.硬件-电路连接3.设备在线连接4.软件-参数配置5.手动运行测试6.PN-IO自动控制配置8.PLC1200硬件组态9.PLC软件编程10.调试故障分析三、总结四、参考 一、本次使用配置说明编写经历 受国际形式与疫情影响 由于近期受国际形式影响以及全球疫情影响,Siemens等常用产品供货期与供货量严重受限,项目上不得不采取选用其它替代产

qq_39024187的博客 1万+

大整数相乘 leetcode 43. 字符串相乘

题目描述 有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。 输入描述: 空格分隔的两个字符串,代表输入的两个大整数 输出描述: 输入的乘积,用字符串表示 示例1 输入 72106547548473106236 982161082972751393 输出 70820244829634538040848656466105986748 思路 方法来源:...

Hunter的博客 812

DC综合中set_dft_signal的实战配置与优化策略

本文深入解析了DC综合中set_dft_signal命令的实战配置与优化策略。文章从命令的核心作用出发,详细拆解了-view、-type、-usage等关键参数,并通过扫描使能与时钟门控的实战案例,展示了如何正确配置以实现测试模式下的功耗优化。同时,文章总结了高级优化策略、与低功耗流程的协同方法以及常见错误排查清单,旨在帮助数字芯片设计工程师构建高可测性、低功耗的稳健DFT基础。

weixin_28347369的博客 403

Leetcode_43. 字符串相乘

本文介绍了LeetCode字符串相乘问题的两种解法:暴力解法和模拟乘法。暴力解法因数据量大会超出整型范围而被否定。重点讲解了模拟乘法解法,通过逐位相乘并处理进位,使用反向迭代器从个位开始计算,最后通过字符串相加实现竖式乘法。文中提供了完整的C++代码实现,包括字符串相加辅助函数和主乘法函数,解决了大数相乘问题。

心动的那一刻,记忆便盛开了花 1156

数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 2(step by step)

数字逻辑第二章习题和详细步骤 2-1 ~ 2-78

weixin_62651190的博客 2306

把 ABAP ALV 做成可点、可改、可保存:Interactive Editable ALV Grid 的一套落地打法

文章摘要(148字): SAP ALV报表开发中,交互式可编辑网格的实用方案需解决三个核心问题:数据展示、交互下钻与编辑保存。本文以SCARR航空公司和SFLIGHT航班数据为例,演示如何实现双击主列表下钻明细、动态切换编辑模式、精确保存修改的技术路线。关键点包括:通过PF-STATUS添加业务按钮、使用CHECK_CHANGED_DATA同步前端修改、保护关键字段避免误操作,以及变更数据的审计跟踪方法。该方案适用于SAP GUI环境下的快速业务调整需求,相比Fiori开发具有更高的实施效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 228

Leetcode 43. 字符串相乘

Leetcode 43. 字符串相乘 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = “2”, num2 = “3” 输出: “6” 示例 2: 输入: num1 = “123”, num2 = “456” 输出: “56088” 说明: num1 和 num2 的长度小于110。 num1 和 num2 只包含数字 0-9。 num1 和 num2 均不以零开头,除非是数字

EIUC_Thread的博客 219

Playwright MCP:开启浏览器自动化的新篇章

在当今数字化时代,浏览器自动化技术在众多领域发挥着至关重要的作用,从简单的网页爬取到复杂的自动化测试,再到智能代理与网页的交互等场景,都离不开高效、可靠的浏览器自动化工具。而微软推出的项目,正是在这一领域的一次创新性探索,它为开发者带来了全新的视角和强大的功能支持。本文将深入探讨的概念、架构、代码示例、应用场景、注意事项以及未来发展方向,帮助读者全面了解这一前沿技术。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 5263

LeetCode 43字符串相乘

LeetCode 43字符串相乘 题目简述:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 输入:num1 = “2”, num2 = “3” 输出:“6” 输入:num1 = “123”, num2 = “456” 输出:“56088” 说明 num1 和 num2 的长度小于 110。 num1 和 num2 只包含数字 0-9。 num1 和 num2 均不以零开头,除非是数字 0

XBlog 243

【WRF运行报错】总结WRF运行时报错及解决方案(持续更新)

总结WRF运行时报错及解决方案(持续更新)

WW、forever的博客 1630

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

leetcode43 字符串相乘 python

字符串相乘(中等)(leetcode43) 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。 示例1:输入: num1 = "2", num2 = "3",输出: "6" 示例2:输入: num1 = "123", num2 = "456",输出: "56088" 说明:不能使用任何标准库的大数类型(比如 B...

qq_37792144的博客 533

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Leetcode 43. Multiply Strings 字符串相乘

Leetcode 43. Multiply Strings 字符串相乘 标签: Leetcode 题目地址: https://leetcode-cn.com/problems/multiply-strings/ 题目描述 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘...

CoderWangSon 326

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

leetcode43. 字符串相乘

相乘,首先我们就知道了,这两个字符串转化成得数字有可能是0,如果==0,那么直接返回字符串0就行了,如果不为0,我们小学都学过乘法的竖式计算,我们可以先举个例,例如字符串123*字符串45,那么该如何做呢?首先我们肯定是得把字符串转化为数字,必须是一个一个字符的转化,因为题目要求不能直接转化,也不能使用大数相乘标准库,转化为数字后,就按照小学时我们给乘法排竖式的方式进行计算。我们可以看到题目是要求我们将两个字符串转化为。

2302_79795375的博客 368

LeetCode 43. 字符串相乘

LeetCode 43. 字符串相乘 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = “2”, num2 = “3” 输出: “6” 示例 2: 输入: num1 = “123”, num2 = “456” 输出: “56088” 说明: num1 和 num2 的长度小于11...

Ailecccc的博客 172

leetcode 43 字符串相乘

本题实际上是考察,我们可以来求解问题,但是我们无需完全按照列竖式计算的流程(先进位再求和)进行模拟,我们可以,以示例2为例:左图为一般列竖式计算的流程(先进位再求和),右图为先求和再进位的流程,观察可知,二者计算结果相同,均正确。

2301_80296866的博客 715

leetcode—43 字符串相乘

如果两字符串的都不为0,那么我们可以采用“竖式乘法”来模拟字符串相乘的乘积,根据竖式乘法的性质可知,由于需要遍历字符串,所以只能将字符串中的整数的每一位分别拆开来计算,如果我们模拟num1为被乘数,num2为乘数,则num2除了最低位以外,其余的每一位运算结果都需要补零。容易知道,当一个长度为m的num1数组与长度为n的num2数组相乘时,产生的结果值不会大于m+n,且最小应为m+n-1,举例:长度为2的最小情况:10*10=100,长度为m+n-1,最大情况:99*99

m0_74066331的博客 475

leetcode 43. 字符串相乘

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。我们可以使用加法原理,先计算第一个的数值,在第二个的时候直接用数值乘以位数再相加求和,循环的结果就是我们需要的结果。将每一个字符单独提取出来,减去'0'再转换为int类型就是当前的数字了。输入: num1 = "123", num2 = "456"输入: num1 = "2", num2 = "3"先是r=r+3x1234(开始的r=0)比如"1234"*"123"

dengjiayue的博客 534

leetcode--43. 字符串相乘

题目:43. 字符串相乘链接:https://leetcode-cn.com/problems/multiply-strings/description/模拟大整数乘法,给定的两个乘数为字符串格式。python:def myMulti(num1,num2): if num2[0]=="0" or num1[0]=="0": return "0" res,add=""...

Nero Zhang的博客 925
上一篇: 21. 合并两个有序链表
下一篇: 38. 外观数列
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值