题目

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)相关推荐

  1. 【大数相乘】LeetCode 43. Multiply Strings

    LeetCode 43. Multiply Strings Solution1:我的答案 作为一个hard题,提交一次就过真是让我hin开心啊!!! 就是方法有点笨.. class Solution ...

  2. leetcode -43 -字符串相乘 -java版

    文章目录 题目 代码 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = &quo ...

  3. 43. Multiply Strings 字符串相乘

    给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", num ...

  4. LeetCode 43. Multiply Strings (竖式乘法)C++

    Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and ...

  5. LeetCode Multiply Strings(大整数相乘)

    思路:用笔算的形式就可以了 代码如下: public class Solution {public String multiply(String num1, String num2) {StringB ...

  6. 【leetcode】Multiply Strings(middle)

    Given two numbers represented as strings, return multiplication of the numbers as a string. Note: Th ...

  7. leetcode 459. 重复的子字符串(Java版)

    题目 https://leetcode-cn.com/problems/repeated-substring-pattern/ 思路 暴力解法 + 剪枝优化 经过尝试,如果直接使用暴力解法会超时,于是 ...

  8. LeetCode刷题实战(43):Multiply Strings

    题目描述: 43 Multiply Strings 28.7% Medium Given two non-negative integers num1 and num2 represented as ...

  9. LeetCode 43. 字符串相乘【c++/java详细题解】

    目录 1.题目 2.思路 3.c++代码 4.java代码 1.题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. ...

最新文章

  1. iOS 数据持久化 -- Core Data (2)
  2. Windows 7使用wubi硬盘安装Ubuntu (文字版)
  3. 理解分布式一致性:Paxos协议之Cheap Paxos Fast Paxos
  4. 编写统一、符合习惯的CSS的原则
  5. 一维数组去重处理法一(C语言)
  6. “中华姓氏文化归心工程”在京启动
  7. string的一些常见函数
  8. 带你秒学JavaScript
  9. NYOJ 7-街区最短路径问题(曼哈顿距离)
  10. java的ascii码表_ASCII码表对照
  11. 实验6 Matlab数值计算
  12. 手把手教你 | 识别色环电阻/贴片电阻阻值
  13. 网友发帖曝最剽悍翻译 贵阳译成昂贵的太阳
  14. ZT:【搞笑】某大学生毕业自我鉴定
  15. 如何在一个事件中使用(调用)另一个事件
  16. 简单制作一个百度注册页面
  17. 7-2 求奇数和 (5 分)
  18. Android实现可录音/暂停录音/播放录音的录音软件
  19. 如何提高思维能力(不止针对程序猿)
  20. 认知无线电学习笔记1 物理层概念

热门文章

  1. HDU - 5875 Function(单调栈)
  2. vs运行时 文本可视化工具 无法点开_webpack 优化:2 款工具帮你找到构建速度“变慢”的原因...
  3. uva1347Tour
  4. 【数据结构】堆 笔记
  5. HDU2879(积性函数)
  6. C++中ASCII、unicode与Utf8之间的相互转化
  7. UDP用打洞技术穿透NAT的原理与实现
  8. TCP长连接,短连接
  9. LXC C API 使用
  10. 性能优化:如何更快地接收数据