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

leetcode43. 字符串相乘

一、题目描述

给定两个以字符串形式表示的非负整数 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本身。

二、题目解析

1、竖式运算思路,StringBuilder保存每一轮的计算(根据规律需要补0操作),最后利用leetcode415字符串相加 完成和的计算
在这里插入图片描述

class Solution {//字符串相加的方法实现public String addStrings(String num1, String num2) {int i = num1.length() - 1,j = num2.length() - 1,carry = 0;StringBuilder builder = new StringBuilder();while(i >= 0 || j >= 0 || carry > 0){int temp1 = i >= 0 ? num1.charAt(i) - '0' : 0;int temp2 = j >= 0 ? num2.charAt(j) - '0' : 0;int num = (temp1 + temp2 + carry) % 10;carry = (temp1 + temp2 + carry) / 10;builder.append(num);i--;j--;}return builder.reverse().toString();}public String multiply(String num1, String num2) {//equals判断内容相等if (num1.equals("0") || num2.equals("0")) {return "0";}String s1 = num1.length() >= num2.length() ? num2 : num1;String s2 = num1.length() >= num2.length() ? num1 : num2;String sum = "";for(int i = s1.length() - 1;i >= 0;i--){int add = 0;int base = s1.charAt(i) - '0';StringBuilder builder = new StringBuilder();for(int k = 0;k < s1.length() - i - 1;k++){builder.append(0);}for(int j = s2.length() - 1;(j >= 0) || (add > 0);j--){int temp = j >= 0 ? base * (s2.charAt(j) - '0') + add : add;add = temp / 10;int num = temp % 10;builder.append(num);}// 将当前结果与新计算的结果求和作为新的结果sum = addStrings(sum,builder.reverse().toString());add = 0;}return String.valueOf(sum);}
}

在这里插入图片描述

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

相关文章:

  • 遗传算法求解冷链路径优化问题matlab代码
  • [ Spring 框架 ] 框架搭建和属性赋值
  • android 实现表格效果
  • 《彩色终端》诗解——ANSI 艺术解(DeepSeek)
  • shell脚本第一阶段
  • Image-to-Music API 接入文档(图片生成音乐)
  • 【新手易混】find 命令中 -perm 选项的知识点
  • ANSI终端色彩控制知识散播(I):语法封装(Python)——《彩色终端》诗评
  • JavaScript 性能优化实战技术指南
  • Coze AI大模型 Docker 部署流程详解
  • 设计模式(四)——责任链模式
  • Spring 三级缓存:破解循环依赖的底层密码
  • 【Python语法基础学习笔记】常量变量运算符函数
  • LeetCode 每日一题 2025/8/11-2025/8/17
  • 【嵌入式基础梳理#12】风压计Modbus框架示例
  • RAG:让AI成为你的知识专家
  • Maven Assembly Plugin 插件使用说明
  • Linux下使用ssh-agent实现集群节点间无免密安装部署
  • 深度学习——R-CNN及其变体
  • 【轨物交流】轨物科技与华为鲲鹏生态深度合作 光伏清洁机器人解决方案获技术认证!
  • Session共享与Sticky模式:优化Web应用性能
  • [激光原理与应用-296]:理论 - 非线性光学 - 线性光学与非线性光学对比
  • SpringBoot校园商铺运营平台
  • 跨平台RTSP播放器深度对比:开源方案与商业SDK的取舍之道
  • MiniMax Agent 上线 Market Place ,AI一键复制克隆网站
  • 视觉语言导航(5)——VLN的具体工作原理——Seq2Seq CMA模型 KL散度 TRANSFORMER 3.1前半段
  • PMP-项目管理-十大知识领域:资源管理-管理团队、设备、材料等资源
  • Win10下配置WSL2后nvidia-smi不正常显示问题
  • 第一阶段C#基础-15:面向对象梳理
  • python-----机器学习中常用的数据预处理