Leetcode #43. Multiply Strings 字符串相乘 解题报告

AI 辅助代码审查:开启代码质量管控的智能时代 AI辅助代码审查正在改变传统的代码质量管控方式。通过自动化分析、智能反馈和上下文感知,AI不仅提高了代码审查的效率,还提升了代码质量的一致性和可维护性。随着机器学习和深度学习技术的不断发展,未来AI将成为开发者日常工作中强大的助手,进一步推动软件开发向智能化、自动化方向发展。 阅读详情

说了是用两个字符串代表的值做相乘。。

其实也就是高精度乘法了。。按照高精度乘法的方式去做好了

首先转换下字符串到数字数组,让乘数的每一个数字分别和被乘数相乘,注意进位,记得对准位置就好。

一般来说保存结果的数组,可以预先估计下最大可能的长度,比如我选择了两个数组的长度之和,这样运算的时候就不用担心空间不够。

2 原题

Given two numbers represented as strings, return multiplication of the numbers as a string.

Note:
The numbers can be arbitrarily large and are non-negative.
Converting the input string to integer is NOT allowed.
You should NOT use internal library such as BigInteger.

3 AC解

public class Solution {
    //高精度乘法
    public String multiply(String num1, String num2) {
        char[] nums1=num1.toCharArray();
        char[] nums2=num2.toCharArray();
        int n=nums1.length,m=nums2.length,i,j,k;
        //一般来说两个数相乘,其最大位数也不会大于啷个位数之和
        int[] result=new int[n+m];
        //转换成数字
        for( i=0;i<n;i++)
            nums1[i]-='0';
        for( i=0;i<m;i++)
            nums2[i]-='0';
        //用nums2的每一位去乘nums1 累加到result
        for( i=0;i<m;i++){
            int carry=0;
            for( j=0;j<n;j++){
                result[i+j]=result[i+j]+nums2[m-1-i]*nums1[n-1-j]+carry;
                carry=result[i+j]/10;
                result[i+j]%=10;
            }
            k=i+j;
            //处理进位
            while(carry!=0){
                result[k]+=carry;
                carry=result[k]/10;
                result[k]%=10;
                k++;
            }
        }
        StringBuilder tmp=new StringBuilder(n+m);
        i=m+n-1;
        while(i>0 && result[i]==0)
            i--;
        while(i>=0)
            tmp.append(result[i--]);
        return tmp.toString();
    }
}
BitLocker加密盘解密实战:从隐藏分区到密钥恢复的全过程 本文深入探讨了BitLocker加密盘在密钥丢失或遗忘情况下的解密实战方法。文章系统性地介绍了从理解加密机制、制作取证镜像,到深度扫描隐藏分区、分析内存转储寻找密钥残留,最终利用恢复密钥解锁加密卷的全过程。重点剖析了非标准恢复路径,为数据恢复和数字取证工作提供了专业的技术框架和实战思路。 阅读详情

相关推荐

达梦数据库导入报错:[警告]服务器与文件内数据的 CASE_SENSITIVE 参数不匹配,成功终止导入, 但出现警告dimp V8,本地编码:PG_GBK, 导入文件编码:PG_UTF8

达梦数据库管理系统的最新版本是8.0版本,简称DM8。DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。[警告]服务器与文件内数据的 CASE_SENSITIVE 参数不匹配,成功终止导入, 但出现警告。4.无视警告,输入y,回车。

十三月的博客 1万+

字符串相乘

43.字符串相乘;给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式而10^(m+n) 的位数为m+n+1位,同时10^(m+n) 是m+n+1位数的最小值。假设一个是10^(n)-1 , 一个是10^(m)-1,也就是相同位数的最大值。

m0_68014532的博客 1508

COMSOL有限元仿真深度指南:为结构件添加预应变

一、什么是预应力和预应变? 我们知道,结构力学问题中,结构件在外载荷作用下产生变形响应以吸收外载荷做功带来的能量;而在结构内部,整体的受力和变形则是通过固体微元的应力与应变传递的。 对于线弹性材料来说,应力与应变的关系可以线性表达,也即 σ=Dεσ = Dεσ=Dε ;在该式中,无论固体微元的应变程度多大,弹性矩阵DDD都是一个不变的常值。而对于超弹性材料来说,应力与应变的关系则需要通过应变能密度函数WWW来表征(详细参加博客《COMSOL有限元仿真深度指南:超弹性模型有限元分析入门》)。 从上面我们也不难

忘了面孔的Batou 7131

leetcode43. 字符串相乘

给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。 示例:  输入:num1 = “12”,num2 = “34”  输出:“408” 说明: num1和num2的长度小于110。 num1和num2只包含数字0~9。 num1和num2均不以零开头,除非是数字0本身。 不能使用任何标准库的大整数类型(比如BigInteger)或直接将输入转换为整数来处理。 思路: 代码如下: ...

2021dragon的博客 2298

43. 字符串相乘 23.11.29

不能使用任何内置的 BigInteger 库或直接将输入转换为整数。的乘积,它们的乘积也表示为字符串形式。给定两个以字符串形式表示的非负整数。

小小路灯的博客 607

LeetCode | # 43. Multiply Strings

43. Multiply Strings Description 描述:https://leetcode.com/problems/multiply-strings/description/ 题意:将字符串表示的两个数相乘计算结果,不可调用大整数包或直接转为整数相乘。 Solution 1: (Java) class Solution { public String multiply(St...

Karmen199x的博客 272

LeetCode43. Multiply Strings 解题报告(Python)

题目分析: 这个题是让两个字符串(数字)相乘返回字符串(数字),其实也就是大数相乘,大数相乘本质就是模拟我们自己计算的过程。 测试代码: #submit class Solution: def multiply(self, num1: str, num2: str) -&gt; str: res = '' #因为123*456实际你要先用3乘6所以让字符串...

L141210113的专栏 635

LeetCode#43Multiply Strings字符串相乘

题目链接: 点击跳转 题目: Given two non-negative integersnum1andnum2represented as strings, return the product ofnum1andnum2, also represented as a string. Example 1: Input: num1 = "2", num2 = "...

Mikchy的博客 316

43. Multiply Strings

题目链接:https://leetcode.com/problems/multiply-strings/ 代码一 class Solution: def multiply(self, num1: str, num2: str) -> str: result=0 for i in range(len(num1)): tmp=0 ...

SummerHmh的博客 178

LeetCode 43: Multiply Strings (大数相乘)

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string. Example 1: Input: num1 = &quot;2&quot;, num2 = &quot;3&quot; Output: &quot;6&quot; Example 2..

forever_zzx的专栏 373

【一天一道LeetCode#43. Multiply Strings

一天一道LeetCode系列(一)题目 Given two numbers represented as strings, return multiplication of the numbers as a string. Note: The numbers can be arbitrarily large and are non-negative. Co

ZeeCoder 1681

[leetcode] 43. Multiply Strings

Description Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string. 字符串相乘的Python和C++代码实现。

Learning from the mistakes 283

43. Multiply Strings 字符串相乘

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

weixin_30740581的博客 121

leetcode #43 Multiply Strings

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string. Example 1: Input: num1 = “2”, num2 = “3” Output: “6” Example 2:...

zyp7355的博客 154

字符串相乘

介绍了大数如何相乘 文章目录前言一. 分析思路二、使用步骤1.代码如下2、memset函数三、总结 前言 我们已经知道,正常的两位整形数据通过*相乘,C语言中int为4字节, 32bit(字节),其机器码第一位为符号位,余下31位表示数字,表示范围: -2^31(-2147483648)~2^31-1(2147483647),但超过了这个范围我们该如何 做呢? 提示:将数字以字符串的形式进行操作 一. 分析思路 示例: 我们把每一个数都看成是一个字符串....

Q1697354625 2319

leetcode字符串相乘(两种方法)

字符串相乘

weixin_73142957的博客 1185

Python 基础算法——字符串相乘

3.字符串相乘:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。输入: num1 = “123”, num2 = “456”下面是Karatsuba算法的视屏讲解,有需要可以观看。输出: “56088”

Tony_33的博客 2679

Leetcode】【字符串相乘

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。链接:https://leetcode.cn/problems/multiply-strings。然后编写字符串相乘的函数。字符串相乘的函数需要调用我们字符串相加的函数。输入: num1 = "123", num2 = "456"输入: num1 = "2", num2 = "3"对于字符串相乘,我们先需要定义字符串相加。来源:力扣(LeetCode)输出: "56088"....

芊樱烛渊的博客 534

字符串相乘:2种解题思路

目录 第一种:实现字符串乘法算法,乘法算法通过实现字符串的加法完成。 第二种:利用乘法公式,把num1,num2的每个位相乘的结果放到在数组对应的偏移位上,最终数组上的值就是相乘的结果。 第一种思路的代码实现: 第二种思路的代码实现: 字符串相乘leetcode中的43题:https://leetcode-cn.com/problems/multiply-strings/ 目前有2...

Java程序员的进阶之路 2677

IEEE Std 1149.1-2013 .pdf

IEEE Standard for Test Access Port and Boundary-Scan Architecture 2013版边界扫描1149.1标准2013版本,主要是DC部分,包括cell设计、测试指令介绍等

Windows 10远程桌面服务配置文件rdpwrap.10.0.19041.1741.zip

Windows远程桌面服务RDPWrap配置文件,适用于Windows 10 10.0.19041.1741及之前部分版本。此配置文件只能支持Windows 10 10.0.19041.1741及之前部分版本,由于Windows不断更新版本,可能会导致rdpwrap配置文件不支持最新的Windows版本,请谨慎下载。本账号会不定期更新支持最新Windows 10版本的rdpwrap配置文件,高于10.0.19041.1741版本的Windows 10用户,请加粉关注以获取最新的rdpwrap配置文件。

上一篇: Leetcode #42. Trapping Rain Water 雨水收集 解题报告
下一篇: Leetcode #44. Wildcard Matching 通配符匹配 解题报告
学术状态抽奖器
博客等级 码龄14年 249粉丝 270原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值