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(); }
相关推荐
基本计算器leetcode Strings-3 Problem1 Integer to English Words () Problem2 Basic Calculator || ()
leetcode 字符串-1 问题1 自定义排序字符串 () 问题2 无重复字符的最长子串()
刷LeetCode刷LeetCode刷LeetCode刷LeetCode刷LeetCode
大佬的leetcode刷题笔记(c++版本)
LeetCode 101_C++_算法_leetcode_leetcode101_leetcode101.zip
vs code LeetCode 插件
LeetCode 101_C++_算法_leetcode_leetcode101_leetcode101_源码.zip
leetcode中文版
100个leetCode详细解答
LeetCode 刷题汇总1
LeetCode 选讲1
terminal-leetcode, 终端Leetcode是基于终端的Leetcode网站查看器 终端 leetcode终端leetcode是基于终端的leetcode网站查看器。本项目是由 RTV 激发的。 我最近正在学习本地化的反应,以实践我的新知识,并根据这个...
leetcode刷题, 直接用leetcode的分类方式.
该分类为结合《算法导论》的内容,给出Leetcode题目分类。题目主要集中在Leetcode的前400题中,也包括有后面的一些经典值得刷的题。该题目分类按照算法和数据结构排版,即可供单独Leetcode刷题使用,也可以配合学习...
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的各式演算法
这份文档列出了leetcode几乎所有题目(大约134题)的分类以及难度指示,是刷leetcode的必备良品。现在leetcode总的题目数已经达到150题,所以有部分题目没有包含在这个文档中,但是——足够了。po主刷leetcode的时候...
leetcode高频面试笔试题150+道,亲身总结。
LeetCode 刷题笔记
(C++)LeetCode刷题题解答案
LeetCode面试笔试题