You are viewing a single comment's thread. Return to all comments →
My JavaScript solution:
function processData(input) { const factoradic = (num) => { const factoradics = []; let i = 1; while (num !== 0) { factoradics.unshift(Math.floor(num % i)); num = Math.floor(num / i); i++; } return factoradics; }; const permutations = (str, n) => { let char; let result = []; let facNumber = factoradic(n - 1); let tempString = str.split(''); while (facNumber.length < str.length) { facNumber.unshift(0); } for (let i = 0; i < str.length; i++) { char = tempString.splice(facNumber[i], 1); result.push(char); } return result.join(''); }; let str = 'abcdefghijklm'; let inputString = input.split('\n'); let currentLine = 0; const readLine = () => inputString[currentLine++]; let t = Number(readLine().trim()); for (let tItr = 0; tItr < t; tItr++) { let n = Number(readLine().trim()); console.log(permutations(str, n)); } }
Project Euler #24: Lexicographic permutations
You are viewing a single comment's thread. Return to all comments →
My JavaScript solution: