Leetcode 43 字符串相乘 C++

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 阅读详情

思路:和两个数 错位相乘相加的想法一致,只不过结果用字符串来表示,这样的话可以计算超大数相乘,不用考虑int 和long等的范围。

class Solution {
public:
    string multiply(string num1, string num2) {
        int n1=num1.size(),n2=num2.size();
        int k=n1+n2-2,carry_bit=0;
        vector<int> v(n1+n2,0);
        string ans;
        //错位相乘相加
        for(int i=0;i<n1;++i)
            for(int j=0;j<n2;++j)
            {
                v[k-i-j]+=(num1[i]-'0')*(num2[j]-'0');
            }
            //计算进位v[0]表示最低位
        for(int i=0;i<n1+n2;++i)
        {
            v[i]+=carry_bit;
            carry_bit=v[i]/10;
            v[i]=v[i]%10;
        }
        //去掉首位的0
        int i=n1+n2-1;
        while(v[i]==0) --i;
        if(i<0) return "0";
        while(i>=0) ans.push_back(v[i--]+'0');
        return ans;
    }
};
告别CANoe?手把手教你用Python+PCAN搭建汽车诊断脚本(附完整代码) 本文详细介绍了如何利用Python和PCAN硬件搭建高性价比的汽车诊断自动化方案,替代昂贵的CANoe工具。通过开源库python-can和udsoncan实现UDS诊断协议,涵盖硬件选择、环境配置、核心功能实现及性能优化,附完整代码示例,助力开发者快速构建诊断脚本。 阅读详情

相关推荐

【文献笔记】ICCV 2021 | Point Transformer

作者提到,特别适合点云处理,因为自注意力机制是的核心,本质上就是一个集合算子:它对输入元素具有顺序不变性和数量不变性3D点云是无序的,即使改变点云txt文件中的点顺序也不会有任何影响。自注意力机制天然具有排列不变性,因为它通过对所有"点对"的关系进行建模来处理输入,而不依赖于任何特定的输入顺序点云数据通常覆盖了3D空间中的对象或场景,理解这些数据需要捕捉点与点之间复杂的空间关系。自注意力机制能够有效的捕捉这些关系,因为它为每个"点对"赋予一个。

m0_55908255的博客 940

LeetCode-Day97(C++) 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 均不以零开头,除非是数字 0 本身。 不能使用任何标准库的大数类.

weixin_45401129的博客 681

最新完整版标准 ISO 14971_2019 中文版 医疗设备—风险管理在医疗设备中的应用.pdf

最新完整版标准 ISO 14971_2019 中文版 医疗设备—风险管理在医疗设备中的应用.pdf

LeetCode 43. 字符串相乘C++代码 超过100%

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

qq_64200765的博客 158

LeetCode43 题:字符串相乘(C++)

43. 字符串相乘 - 力扣(LeetCode) 参考题解:高频面试系列:字符串乘法 - 字符串相乘 - 力扣(LeetCode) 题目并不难,算是加法运算的进阶,记得处理进位就行,可以看上面那个兄弟画的图。 反正就是多画图,多画图帮助思考。 class Solution { public: string multiply(string num1, string num2) { int m = num1.size(), n = num2.size(); vector&

zj 319

43. 字符串相乘

先把C++代码附上,如果看不懂注释可以看后续的思路。这道题不能使用任何内置的 BigInteger 库或直接将输入转换为整数。因此我们只有对字符串进行乘法操作。我的想法是将num1的最后一位开始往前走,每一位都去乘以nums的值,由于num2和num1都是字符串。只能一位一位的取值。首先定义一个足够大的字符串由于他题目的提示是num1和num2的长度都不超过200,因此我们定义一个长度为400的string类就足够了 同时把string类的所有值赋为字符'0' ,

kkbca的博客 91

Leetcode 43. 字符串相乘 C++

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

weixin_43750513的博客 273

字符串相乘leetcode43-c++

这个作者讲的很好,我只是理解,但是其中的detail太繁琐,就放视频给大家,大数相乘

2303_76260560的博客 416

c++做题总结(力扣43.字符串相乘

不能使用任何内置的 BigInteger 库或直接将输入转换为整数。的乘积,它们的乘积也表示为字符串形式。对于数组边界的处理很生疏,要加强练习。给定两个以字符串形式表示的非负整数。

earth_and_sky的博客 400

[LeetCode][C++]43. 字符串相乘

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 均不以零开头,除非是数字 0 本身。 不能使用任何标准库的大

qq_41221520的博客 425

LeetCode C++ 43.字符串相乘

C++ 字符串相乘

weixin_42325783的博客 309

leetcode43. 字符串相乘(附加一些C++string其他小练习)

C++string类 刷题应用

小青菜的博客 1035

Leetcode 43.字符串相乘 C++

当两个字符串中有一个为0时,直接返回"0"即可。

2303_76796002的博客 293

leetcode43-字符串相乘C++

题目如下: 解题思路: 竖式乘法,代码如下: class Solution { public: string multiply(string num1, string num2) { if(num1 == "0" || num2 == "0") return "0"; int m = num1.size(); ...

qq_34018840的博客 209

【力扣 43字符串相乘 C++题解(模拟+字符串+高精度)

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”提示:num1 和 num2 只能由数字组成。num1 和 num2 都不包含任何前导零,除了数字0本身。

HEX9CF的技术博客 757

算法leetcode43

【代码】算法leetcode43

2401_89308216的博客 774

LeetCode43. 字符串相乘 结题报告 (C++)

原题地址:https://leetcode-cn.com/problems/multiply-strings/description/ 题目描述: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = "2", num2 = "3" 输出: "6" 示例 2: 输入: nu...

暮雨凉初透 1254

LeetCode——第四十三题(C++):字符串相乘

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

一七 376

LeetCode-43.字符串相乘

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

疯狂的兔子 1107

leetcode_43.字符串相乘

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

qq_37292201的博客 781

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

说了是用两个字符串代表的值做相乘。。其实也就是高精度乘法了。。按照高精度乘法的方式去做好了首先转换下字符串到数字数组,让乘数的每一个数字分别和被乘数相乘,注意进位,记得对准位置就好。一般来说保存结果的数组,可以预先估计下最大可能的长度,比如我选择了两个数组的长度之和,这样运算的时候就不用担心空间不够。2 原题Given two numbers represented as strings, retu

MebiuW的专栏 3338
上一篇: Leetcode 42 接雨水
下一篇: Leetcode 44 通配符匹配 C++
spark-meng
博客等级 码龄8年 9粉丝 217原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值