GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — JavaScript/String/PermutateString.js at master · TheAlgorithms/JavaScript Expand file tree/ Copy pathPermutateString.jsMore file actions 39 lines (36 loc) · 1006 Bytes / Copy pathPermutateString.jsFile metadata and controls39 lines (36 loc) · 1006 Bytes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 'use strict' const permutate = (aString) => { if (typeof aString !== 'string' || !aString) { throw new Error('The arg must be a valid, non empty string') } const characters = aString.split('') let permutations = [[characters.shift()]] while (characters.length) { const currentCharacter = characters.shift() permutations = calculateCurrentCharacterPermutation( permutations, currentCharacter ) } return permutations .map((character) => character.join('')) .filter((item, index, self) => self.indexOf(item) === index) .sort() } const calculateCurrentCharacterPermutation = ( allPermutations, currentCharacter ) => { const currentPermutations = [] allPermutations.forEach((permutation) => { let index = 0 while (index <= permutation.length) { const tmp = [...permutation] tmp.splice(index, 0, currentCharacter) currentPermutations.push(tmp) index++ } }) return currentPermutations } export { permutate } |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |