leetcode_43.字符串相乘

server/2024/10/20 13:31:51/

43. 字符串相乘

题目描述:给定两个以字符串形式表示的非负整数 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. 代码获取了输入字符串的长度,并创建了一个数组 temp 用于存储中间结果,其长度为 len1 + len2 - 1。这是因为两个长度分别为 len1len2 的数字相乘的结果的最大位数为 len1 + len2,但是最高位不会在中间结果中出现。

  2. 接着,两层循环遍历每一位数字,并将它们两两的乘积加到 temp 数组的对应位置上。

  3. 然后,通过一个循环来处理进位,将 temp 数组中的每一位进行进位处理,确保每一位都在 0 到 9 之间。

  4. 最后,代码使用 StringBuilder 将 temp 数组中的每一位数字转换为字符串,并返回结果。

示例:

class Solution {public String multiply(String num1, String num2) {if (num1.equals("0") || num2.equals("0")) return "0";int len1 = num1.length();int len2 = num2.length();int[] temp = new int[len1 + len2 - 1];for (int i = 0; i < len1; i++) {for (int j = 0; j < len2; j++) {temp[i + j] += (num1.charAt(i) - '0') * (num2.charAt(j) - '0');}}for (int i = len1 + len2 - 2; i > 0; i--) {temp[i - 1] += temp[i] / 10;temp[i] %= 10;}StringBuilder sb = new StringBuilder();for (int x : temp) sb.append(x);return sb.toString();}
}


http://www.ppmy.cn/server/37571.html

相关文章

Boost的日志库Log使用详解

项目中使用到了Boost日志库&#xff0c;今日来探索一下&#xff1a; #include"boost/log/trivial.hpp" #include"boost/log/sinks/text_file_backend.hpp" #include"boost/log/utility/setup/file.hpp" #include"boost/log/utility/setup/…

【busybox记录】【shell指令】unexpand

目录 内容来源&#xff1a; 【GUN】【unexpand】指令介绍 【busybox】【unexpand】指令介绍 【linux】【unexpand】指令介绍 使用示例&#xff1a; 空格转化成制表符 - 默认输出 空格转化成制表符 - 转换所有的空格 空格转化成制表符 - 指定制表位 常用组合指令&#…

【LAMMPS学习】八、基础知识(5.11)磁自旋

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

科研学习|可视化——ggplot2版本的网络可视化

ggplot2是R语言中一个非常流行的数据可视化包&#xff0c;它也可以用于网络可视化。以下是三个基于ggplot2并专门用于网络可视化的R包&#xff1a; ggnet2: 这个包的使用方法与传统的plot函数相似&#xff0c;易于使用。更多信息可在其官方页面查看&#xff1a;ggnet2 geomnet…

C++学习笔记1

A. 求出那个数 题目描述 求出一个最小的正整数 x x x&#xff0c;使得 x x x 每位数字的和恰好为 n n n。 输入格式 第一行一个正整数 T T T&#xff0c;代表测试数据的组数。 接下来 T T T 行每行一个正整数 n n n。 1 ≤ T ≤ 1000 1\le T\le1000 1≤T≤1000 0 ≤…

geojson文件规格

geojson文件示例&#xff0c; {"type": "FeatureCollection","features": [{"type": "Feature","geometry": {"type": "Point","coordinates": [102.0, 0.5]},"properties&q…

传统汽车空调系统工作原理

1.首先讲一个概念 液体变成气体&#xff1a;吸热 气体变成液体&#xff1a;放热 2.在汽车空调系统中热量的传递的介质不是水&#xff0c;而是氟利昂&#xff0c;简称&#xff1a;“氟”。 3.传统式汽车空调结构如下 该三个部件位于车头进气口位置 该部位位于汽车驾驶车厢前方…

Git命令Gitee注册idea操作git超详细

文章目录 概述相关概念下载和安装常见命令远程仓库介绍与码云注册创建介绍码云注册远程仓库操作关联拉取推送克隆 在idea中使用git集成add和commit差异化比较&查看提交记录版本回退及撤销与远程仓库关联 push从远程仓库上拉取&#xff0c;克隆项目到本地创建分支切换分支将…