leetcode 43. Multiply Strings | 43. 字符串相乘(Java)
题目
https://leetcode.com/problems/multiply-strings/
题解
模拟手动乘法,列竖式
class Solution {public String multiply(String num1, String num2) {// guarantee len(num1) > len(num2)if (num1.length() < num2.length()) {String t = num1;num1 = num2;num2 = t;}// simulate human multiplyString[] arr = new String[num2.length()];for (int i = num2.length() - 1, zero = 0; i >= 0; i--, zero++) {arr[i] = mul(num1, num2.charAt(i) - '0', zero);}StringBuilder result = new StringBuilder();int carry = 0;for (int i = arr[0].length() - 1; i >= 0; i--) {int cur = carry;for (String a : arr) {cur += a.charAt(i) - '0';}carry = cur / 10;result.insert(0, cur % 10);}// remove leading zerowhile (result.length() > 0 && result.charAt(0) == '0') {result.deleteCharAt(0);}return result.length() == 0 ? "0" : result.toString();}// 多位数 * 一位数public String mul(String num, int single, int zero) {StringBuilder result = new StringBuilder();int carry = 0;for (int i = num.length() - 1; i >= 0; i--) {int cur = carry + (num.charAt(i) - '0') * single;carry = cur / 10;result.insert(0, cur % 10);}if (carry > 0) result.insert(0, carry);return result.append("0".repeat(zero)).insert(0, "0".repeat(num.length() * 2 - result.length())).toString();}
}
leetcode 43. Multiply Strings | 43. 字符串相乘(Java)相关推荐
- 【大数相乘】LeetCode 43. Multiply Strings
LeetCode 43. Multiply Strings Solution1:我的答案 作为一个hard题,提交一次就过真是让我hin开心啊!!! 就是方法有点笨.. class Solution ...
- leetcode -43 -字符串相乘 -java版
文章目录 题目 代码 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = &quo ...
- 43. Multiply Strings 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", num ...
- LeetCode 43. Multiply Strings (竖式乘法)C++
Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and ...
- LeetCode Multiply Strings(大整数相乘)
思路:用笔算的形式就可以了 代码如下: public class Solution {public String multiply(String num1, String num2) {StringB ...
- 【leetcode】Multiply Strings(middle)
Given two numbers represented as strings, return multiplication of the numbers as a string. Note: Th ...
- leetcode 459. 重复的子字符串(Java版)
题目 https://leetcode-cn.com/problems/repeated-substring-pattern/ 思路 暴力解法 + 剪枝优化 经过尝试,如果直接使用暴力解法会超时,于是 ...
- LeetCode刷题实战(43):Multiply Strings
题目描述: 43 Multiply Strings 28.7% Medium Given two non-negative integers num1 and num2 represented as ...
- LeetCode 43. 字符串相乘【c++/java详细题解】
目录 1.题目 2.思路 3.c++代码 4.java代码 1.题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. ...
最新文章
- iOS 数据持久化 -- Core Data (2)
- Windows 7使用wubi硬盘安装Ubuntu (文字版)
- 理解分布式一致性:Paxos协议之Cheap Paxos Fast Paxos
- 编写统一、符合习惯的CSS的原则
- 一维数组去重处理法一(C语言)
- “中华姓氏文化归心工程”在京启动
- string的一些常见函数
- 带你秒学JavaScript
- NYOJ 7-街区最短路径问题(曼哈顿距离)
- java的ascii码表_ASCII码表对照
- 实验6 Matlab数值计算
- 手把手教你 | 识别色环电阻/贴片电阻阻值
- 网友发帖曝最剽悍翻译 贵阳译成昂贵的太阳
- ZT:【搞笑】某大学生毕业自我鉴定
- 如何在一个事件中使用(调用)另一个事件
- 简单制作一个百度注册页面
- 7-2 求奇数和 (5 分)
- Android实现可录音/暂停录音/播放录音的录音软件
- 如何提高思维能力(不止针对程序猿)
- 认知无线电学习笔记1 物理层概念