当前位置: 首页 > news >正文

力扣(LeetCode) ——43.字符串相乘(C++)

居中图片
居中图片

题目:字符串相乘

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

示例1:

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

示例2:

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

解题思路:

  1. 判断num1与num2是否为0,有一个为0直接return 0;
  2. 初始化参数,计算两个字符串相乘的长度end1+end2
  3. 通过双重循环逐位计算,遍历第一个数的每一位与第二个数的每一位,计算乘积,并将结果累加到对应位置。
  4. 将累加后的中间结果转换为字符串,去除前导零,得到最终乘积。

最终代码:

    string multiply(string num1, string num2) {//边界条件1:若任意一个乘数是"0",直接返回乘积"0"(0乘任何数为0)if(num1 == "0" || num2 == "0"){return "0";}int end1 = num1.size(), end2 = num2.size();vector<int> v(end1 + end2, 0);string ret = "";//外层循环:从num1的末尾(最低位)向前遍历(模拟竖式乘法从右往左算)for(int i = end1 - 1; i >= 0; i--){//将当前num1的字符转换为对应的数字(如'3' - '0' = 3)int n1 = num1[i] - '0';//内层循环:从num2的末尾(最低位)向前遍历for(int j = end2 - 1; j >= 0; j--){//将当前num2的字符转换为对应的数字int n2 = num2[j]-'0';//v[i+j+1] 是当前乘积对应的"个位"位置(因为i、j从末尾开始,索引偏移需+1)int tmp = v[i + j + 1] + n1 * n2;//取tmp的个位,存入容器对应位置(更新当前位的结果)v[i + j + 1] = tmp % 10;//取tmp的十位及以上(进位),存入容器的前一位(供下一轮累加)v[i + j] += tmp / 10;}}bool flag = true;//遍历for(int i = 0; i < v.size(); i++){if(v[i] != 0 || !flag){//一旦遇到非零数字,后续不再跳过flag = false;//将数字转换为字符,存入结果字符串ret.push_back(v[i] + '0');}}return ret;}

赶紧动起手来吧!!!
点击下方即可跳转
字符串相乘

http://www.dtcms.com/a/602460.html

相关文章:

  • 哪里有做网站服务世安建设有限网站
  • 目前哪些企业需要做网站建设的呢企业网站优化兴田德润优惠
  • strchr函数
  • 做图书网站赚钱么关于网站建设的名言
  • Xen PVH 模式启动 Dom0 配置文档
  • 26_FastMCP 2.x 中文文档之FastMCP服务端部署:HTTP 部署指南
  • cisp-pte之SQL注入题之vulnerabilities/fu1.php?id=1
  • 发布三小时,GitHub标星11K,华为内部的图解网络笔记限时开源
  • 【electron】解决CS里的全屏问题
  • 手机网站建站软件毕设做桌面软件 网站
  • 【1.8】基于FPGA的costas环开发2——解调端下变频模块
  • 电商培训机构哪家好网站优化一年多少钱
  • 专业手机网站建设设计软文案例400字
  • pyautocad 获取obb最小包围矩形后旋转平行后标注长宽
  • Google ADK、OpenAI Agents SDK 和 AgentScope的详细对比
  • 深入解析MySQL数据库报错:`ERROR 1146 (42S02) Table ‘mysql.user‘ doesn‘t exist`
  • 用C语言编写有趣程序 | 探索如何用编程创造乐趣与实用工具
  • 武城网站建设公司谷歌广告代理商
  • Docker是什么?怎么安装与配置?
  • 搭建网站的步骤wordpress地址改不了
  • 手机网站报价表网站建设规划书实训报告
  • (Linux操作系统)MySQL在Centos7环境安装和MySQL数据库基础
  • UCOS-III笔记(三)
  • 如何自己建设简单的手机网站品牌创意网站建设
  • 关于csdn隐私
  • 数据集结构说明(Dataset)
  • C语言源程序经过编译
  • 建设工程英语网站单位做网站费用怎么记账
  • 做网站需要注册什么类型的公司台州市建设施工图审图网站
  • 文献——总结