[leetcode javascript解题]Multiply Strings
2017-01-04 22:20
447 查看
leetcode 第43题“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.
Converting the input string to integer is NOT allowed.
You should NOT use internal library such as BigInteger.
题目就是通过字符串实现大数乘法。关键是把握好进位问题,我代码的思路比较清晰,但是略显繁琐。还有改进的地方:
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.
Converting the input string to integer is NOT allowed.
You should NOT use internal library such as BigInteger.
题目就是通过字符串实现大数乘法。关键是把握好进位问题,我代码的思路比较清晰,但是略显繁琐。还有改进的地方:
/** * @param {string} num1 * @param {string} num2 * @return {string} */ var multiply = function(num1, num2) { var result = [], temp, l1 = num1.length, l2 = num2.length, resultStr = ""; for (var i = l1 - 1; i >= 0; i--) { for (var j = l2 - 1; j >= 0; j--) { temp = num1[i] * num2[j]; var tenTemp = Math.floor(temp / 10), oneTemp = Math.floor(temp % 10); result[l1 + l2 - i - j - 1] = result[l1 + l2 - i - j - 1] + oneTemp || oneTemp; //个位储存 result[l1 + l2 - i - j] = result[l1 + l2 - i - j] + tenTemp || tenTemp; //十位储存 } } for (i = 1; i < result.length; i++) { if (result[i] >= 10) { //进位 result[i + 1] += Math.floor(result[i] / 10); result[i] = Math.floor(result[i] % 10); } } for (j = result.length - 1; j > 0; j--) { //将数组转为字符串 resultStr += result[j]; } var index = 0; while (resultStr[index] === "0") { index++; } return resultStr.substr(index) === "" ? "0" : resultStr.substr(index); };
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- 只需四个步骤几行代码,即可快速实现直播弹幕功能
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- JavaScript 基础、进阶以及 Ubuntu 系统中的 JavaScript 开发调试工具
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 设计模式---状态模式在web前端中的应用
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法