Largest 5 digit number in a series - mrm7moud/codewars GitHub Wiki
In the following 6 digit number:
283910 91 is the greatest sequence of 2 digits.
Complete the solution so that it returns the largest five digit number found within the number given.. The number will be passed in as a string of only digits. It should return a five digit integer. The number passed may be as large as 1000 digits.
Adapted from ProjectEuler.net ------------------------------------------------------------------------------------------------------------------###Solution
function solution(digits){ if (digits.length <= 5) return Number(digits); return Math.max(Number(digits.substr(0, 5)), solution(digits.substr(1))); }
or
function solution(digits){ var r = 0; for (i = 0; i < digits.length - 4; i++) { r = Math.max(r, parseInt(digits.substr(i,5),10)); } return r; }
or
function solution(digits){ var max = null; var sliced = null; for(var i = 0; i <= digits.length - 5; i += 1) { sliced = +digits.slice(i, i + 5); max = max > sliced ? max : sliced; } return max; }
or
function solution(digits){ var max = 0; for(var i = 0; i <= digits.length - 5; i++) max = Math.max(+digits.slice(i, i + 5), max); return max; }
or
const solution = digits => digits .split(/(.{5})/g) .filter(x => x) .map(Number) .reduce((prev, curr) => curr.toString().length < 5 ? Math.max(prev, digits.slice(-5)) : Math.max(prev, curr) , 0)
or
function solution(digits) { for (var i = 0, n = 5, result = 0; i < digits.length-n+1; i++) { for (var j = i, candidate = ''; j < i+n; j++) candidate += digits[j]; result = candidate > result?+candidate:result; } return result; }
or
function solution(digits){ if (digits.length < 6) { return digits; } var n = digits.length-5; var digit = 0; for(var i = 0; i <= n; i++) { var current = +digits.substring(i, i+5); if (digit < current) { digit = current } } return digit; }
or
function solution(digits) { console.log(digits)
let max = 0;
for (let i = 0; i < digits.length; i++) { let subs = Number(digits.substring(i, i + 5)); if (subs > max) { max = subs; } }
return max; }
or
function solution(digits){ var tmp = 0 var largest = 0 for (var i = 0; i < digits.length; i++) { tmp = parseInt(digits.substr(i, 5)) if (tmp > largest) largest = tmp; } return largest; }
or
function solution(digits){ var res=0 for(var i=0; i< digits.length-4; i++) if (+digits.slice(i,i+5)>res) res = +digits.slice(i,i+5) return res }
or
function solution(digits){ return digits.split('').reduce((l, c, i, a) => ((A,B)=>(B>A)?B:A)(l,Number(a.slice(i,i+5).join('')))) }
or
function solution(digits){ return digits.split('').reduce((l, c, i, a) => Math.max(l,Number(a.slice(i,i+5).join('')))) }