forked from vokoshyv/codewarsstuff
-
Notifications
You must be signed in to change notification settings - Fork 0
/
permu.js
46 lines (39 loc) · 924 Bytes
/
permu.js
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
40
41
42
43
44
45
46
//http://www.codewars.com/kata/5254ca2719453dcc0b00027d/train/javascript
function permutations(string) {
var work = string.split('');
var permArr = [],
usedChars = [];
function recurse(input) {
var i, ch;
for (i = 0; i < input.length; i++) {
ch = input.splice(i, 1)[0];
usedChars.push(ch);
if (input.length == 0) {
permArr.push(usedChars.slice());
}
recurse(input);
input.splice(i, 0, ch);
usedChars.pop();
}
return permArr
};
work = recurse(work);
var work2 = [];
for (var i = 0; i < work.length; i++){
var current = "";
for (var j = 0; j < work[i].length; j++){
current += work[i][j];
}
work2.push(current);
}
var resultObj = {};
for (var i = 0; i < work2.length; i++){
resultObj[work2[i]] = true;
}
var finalResult = [];
for (var key in resultObj){
finalResult.push(key);
}
return finalResult;
}
// permutations('abcd');