Multiply Strings
Given two numbers represented as strings, return multiplication of the numbers as a string.
Note: The numbers can be arbitrarily large and are non-negative.
Note: The numbers can be arbitrarily large and are non-negative.
让大家见识见识第一次的算法提交之后有多坑。
最后一个case没过,我忍了,但是尼玛这个结果是什么情况,这么长的结果,就一位错了,debug都不能啊魂淡,你要闹哪样啊小婊砸。
然后那晚上就抓狂了,放了一段时间之后,再做,借鉴别人的思路,有了以下的做法,这道题原作者已经分析的非常好了,图文并茂,不信点这里。我就不鹦鹉学舌了。
不过需要注意的是:
1. 去掉高位的0(如00142,返回142)
2. 结果是0
代码如下:
public String multiply(String num1,String num2){ if(num1 == null || num2 == null || num1.length() == 0 || num2.length() == 0) return null; int num1Length = num1.length(),num2Length = num2.length(); char[] n1 = num1.toCharArray(),n2 = num2.toCharArray(); int[] result = new int[num1Length + num2Length]; for(int i = 0 ; i < num1Length; i++){ for(int j = 0 ; j < num2Length; j++){ result[i + j] = result[i + j] + (n1[i] - '0') * (n2[j] - '0'); } } int tem = 0; for(int i = result.length - 1; i >= 0; i--){ result[i] += tem; if(result[i] > 9){ tem = result[i] / 10; result[i] %= 10; }else{ tem = 0; } if(i != result.length - 1){ result[i + 1] = result[i]; } } result[0] = tem; int highIndex = 0; while(highIndex < result.length && result[highIndex] == 0) highIndex++; if(highIndex >= result.length) return "0"; StringBuilder sb = new StringBuilder(); for(int i = highIndex; i < result.length; i++){ sb.append(result[i]); } return sb.toString(); }
相关推荐
java java_leetcode题解之Multiply Strings.java
c语言入门 C语言_leetcode题解之43-multiply-strings.c
js js_leetcode题解之43-multiply-strings.js
# [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...
Multiply Strings 066 Add Binary Linked-list 002 Add Two Numbers Stack 020 Valid Parenthesis Hash Table 001 TwoSum Reference 完整的学习流程 How to be a softwair engineer: 其他人详解 Python的各式演算法
- Multiply Strings: 给定两个非负整数字符串形式的数,要求进行乘法运算。 - Wildcard Matching: 实现支持'?'和'*'的通配符匹配。 - Jump Game / Jump Game II: 第一个问题要求判断是否能到达数组的最后一个位置,...
leetcode卡 LeetCode LeetCode题解 目录 字符串问题 ID Title C++ 难度 备注 0008 String to Integer(atoi) :star: :star: :star: ...Multiply Strings :star: :star: 大数相乘 0044 Wild Card Matchi
22. **Multiply Strings**:两个字符串表示的数相乘。同样模拟笔算乘法,使用二维数组存储中间结果。 23. **Rotate Array**:将数组顺时针旋转指定步数。可以先反转整个数组,再反转前半部分和后半部分。 24. **...
第43题:字符串相乘(Multiply Strings) 题目描述: 给定两个非负整数num1和num2,它们的长度相同,用字符串形式表示。你的任务是计算它们的乘积,并返回结果字符串。例如,"2" 和 "3" 相乘等于 "6"。 解决方案:...
在本压缩包中,主题聚焦于使用Python解决LeetCode第43题——“字符串相乘”(Multiply Strings)。这是一道常见的编程面试题,旨在测试应聘者的字符串处理和算法设计能力。下面将详细探讨该题目的背景、解题思路、...