当前位置:网站首页>2022.07.15_每日一题
2022.07.15_每日一题
2022-07-31 06:07:00 【诺.い】
43. 字符串相乘
题目描述
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。
示例 1:
输入: num1 = “2”, num2 = “3”
输出: "6“
示例 2:
输入: num1 = “123”, num2 = “456”
输出: “56088”
提示:
1 <= num1.length, num2.length <= 200num1和num2只能由数字组成。num1和num2都不包含任何前导零,除了数字0本身。
- 数学
- 字符串
- 模拟
coding
class Solution {
public String multiply(String num1, String num2) {
// 会超范围
// Integer n1 = Integer.valueOf(num1);
// Integer n2 = Integer.valueOf(num2);
// return n1 * n2 + "";
// BigDecimal yyds!! 哈哈哈
// BigDecimal s1 = new BigDecimal(num1);
// BigDecimal s2 = new BigDecimal(num2);
// return s1.multiply(s2).toString();
// 模拟
// 如果其中一个数是 "0", 则结果必定为 "0"
if (num1.equals("0") || num2.equals("0")) {
return "0";
}
String res = "";
Stack<String> stack = new Stack();
int temp = 0;
for (int i = num1.length() - 1; i >= 0; i--) {
for (int j = num2.length() - 1; j >= 0; j--) {
stack.add(String.valueOf((Integer.parseInt(num1.substring(i, i + 1)) * Integer.parseInt(num2.substring(j, j + 1)) + temp) % 10));
temp = (Integer.parseInt(num1.substring(i, i + 1)) * Integer.parseInt(num2.substring(j, j + 1)) + temp) / 10;
}
if (temp != 0) {
stack.add(String.valueOf(temp));
temp = 0;
}
StringBuffer str = new StringBuffer(stack.size());
while (!stack.isEmpty()) {
str.append(stack.pop());
}
int zeroCnt = num1.length() - 1 - i;
while (zeroCnt > 0) {
str.append('0');
zeroCnt --;
}
res = addStr(res, str.toString());
}
return res;
}
private String addStr(String str1, String str2) {
StringBuffer sum = new StringBuffer();
int temp = 0;
Stack<String> stack = new Stack();
int index1 = str1.length() - 1;
int index2 = str2.length() - 1;
while (index1 >= 0 || index2 >= 0) {
int num1 = 0;
int num2 = 0;
if (index1 >= 0) {
num1 = Integer.parseInt(str1.substring(index1, index1 + 1));
}
if (index2 >= 0) {
num2 = Integer.parseInt(str2.substring(index2, index2 + 1));
}
stack.add(String.valueOf((num1 + num2 + temp) % 10));
temp = (num1 + num2 + temp) / 10;
index1 --;
index2 --;
}
if (temp != 0) {
stack.add(String.valueOf(temp));
}
while (!stack.isEmpty()) {
sum.append(stack.pop());
}
return sum.toString();
}
}
边栏推荐
- 嵌入式系统驱动初级【2】——内核模块下_参数和依赖
- 文件 - 03 下载文件:根据文件id获取下载链接
- 【编程题】【Scratch三级】2022.03 冬天下雪了
- Third-party library-store
- In-depth analysis of z-index
- Zero-Shot Learning & Domain-aware Visual Bias Eliminating for Generalized Zero-Shot Learning
- Database Principles Homework 2 — JMU
- 讲解实例+详细介绍@Resource与@Autowired注解的区别(全网最全)
- 在 ASP.NET Core 应用程序启动时运行代码的 3 种方法
- Postgresql source code learning (33) - transaction log ⑨ - see the overall process of log writing from the insert record
猜你喜欢

Analysis of the implementation principle and detailed knowledge of v-model syntactic sugar and how to make the components you develop support v-model

Obtaining server and client information

Conditional statements of shell (test, if, case)

Some derivation formulas for machine learning backpropagation

LeetCode刷题——摆动序列#376#Medium

单点登录 思维导图

Postgresql source code learning (34) - transaction log ⑩ - full page write mechanism

2.(1)栈的链式存储、链栈的操作(图解、注释、代码)

Analysis of the principle and implementation of waterfall flow layout

外贸网站优化-外贸网站优化教程-外贸网站优化软件
随机推荐
Exam Questions Previous True Questions Wrong Bills [The Fourth Session] [Provincial Competition] [Group B]
【云原生】-Docker容器迁移Oracle到MySQL
把 VS Code 当游戏机
事务的传播机制
【Star项目】小帽飞机大战(八)
Core Tower Electronics won the championship in the Wuhu Division of the 11th China Innovation and Entrepreneurship Competition
gstreamer's caps event and new_segment event
【解决】npm ERR A complete log of this run can be found in npm ERR
2. (1) Chained storage of stack, operation of chain stack (illustration, comment, code)
R——避免使用 col=0
360推送-360推送工具-360批量推送工具
postgresql源码学习(34)—— 事务日志⑩ - 全页写机制
线程中断方法
【科普向】5G核心网架构和关键技术
【第四章】详解Feign的实现原理
Zotero | Zotero translator plugin update | Solve the problem that Baidu academic literature cannot be obtained
数据库原理作业2 — JMU
Project exercise - memorandum (add, delete, modify, check)
CHI论文阅读(1)EmoGlass: an End-to-End AI-Enabled Wearable Platform for Enhancing Self-Awareness of Emoti
[PSQL] SQL基础教程读书笔记(Chapter1-4)