[leetcode]306. Additive Number -- JavaScript 代码
来源:互联网 发布:同志软件aloha 编辑:程序博客网 时间:2024/06/03 16:35
这段js代码是参考了某大神的java代码。
原博客见链接 –> http://blog.csdn.net/sbitswc/article/details/50191729
javascript代码如下:
/** * @param {string} num * @return {boolean} */var isAdditiveNumber = function(num) { //console.log(Number(nums[0])+Number(nums[1])); var len = num.length; if(len<1){ return false; } for(var i=1;i<=len/2;i++){ for(var j=1;Math.max(i,j)<=len-i-j;j++){ if(isValid(i,j,num)){ return true;// i:第一个数字字符长度 j:第二个数字字符长度 } } } return false; function isValid(num1,num2,nums){ if(num.charAt(num1) == '0' && num2>1) return false; if(num.charAt(0) == '0' && num1>1) return false; var x1 = Number(nums.substring(0,num1)); var x2 = Number(nums.substring(num1,num1+num2)); var sum = ""; for(var k=num1+num2;k!=nums.length;k+=sum.length){ x2 = x2 + x1; x1 = x2 - x1; sum = x2.toString();//num.startsWith(sum, k) if(nums.substring(k,k+sum.length)!=sum){ return false; } } return true; }};
这段代码其实是用了最简单的暴力循环,不过巧妙的限制了循环条件,所以代码的执行效率还比较高的。
isValid函数判断的是,当第一个数字字符的长度为nums1,第二个数字字符为nums2的时候,原字符串是否符合题目条件。函数中的for循环用于迭代,完成整条字符串的判断。
0 0
- [leetcode]306. Additive Number -- JavaScript 代码
- [leetcode] 306. Additive Number
- [LeetCode]306. Additive Number
- LeetCode:306. Additive Number
- leetcode 306. Additive Number
- 306. Additive Number LeetCode
- LeetCode *** 306. Additive Number
- LeetCode 306. Additive Number
- [LeetCode]--306. Additive Number
- [leetcode] 306. Additive Number
- 【LeetCode】306. Additive Number
- leetcode 306. Additive Number
- [LeetCode]306. Additive Number
- LeetCode 306. Additive Number
- leetcode 306. Additive Number
- [leetcode]306. Additive Number
- leetcode 306. Additive Number
- (Java)LeetCode-306. Additive Number
- sublime Text中个人推荐的字体
- Java review--反射
- Linux中的进程组、作业以及会话
- DataBinding 绑定
- IP 地址分组
- [leetcode]306. Additive Number -- JavaScript 代码
- mysql中update别名使用
- jqury(源自runoob.com)
- win10系统下PS界面出现中文乱码的问题
- Object Contour Detection with a Fully Convolutional Encoder-Decoder Network
- 319.leetcode Bulb Switcher (medium)[观察总结规律]
- 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH
- Pat甲级1003. Emergency (25)
- socket.io 实时通信在nodejs下的应用