JSFiddle - React, Tailwind, and code Playground

by Sebastian

JavaScript

var regexp = /(.)\1+/gi;  // pattern is: any sign followed by at least one the same sign
var permArr = [], usedChars = [];
// PERMUTATING FUNCTION
function permutate(str) {
var i, ch, chars = str.split("");
for (i = 0; i < chars.length; i++) {
	ch = chars.splice(i, 1);
  usedChars.push(ch);
  if (chars.length == 0) permArr[permArr.length] = usedChars.join("");
  permutate(chars.join(""));
  chars.splice(i, 0, ch);
  usedChars.pop();
}
return permArr;
}
// MAIN FUNCTION
function permAlone (str) {
filter = permutate(str);
counter = 0;
for (var j = 0; j < filter.length; j++) {
if (filter[j].match(regexp) === null) { // if pattern's match returns null ->there are no consecutive letters
counter++;
}
}
return counter;
}
// TEST
permAlone("abcdefa");
console.log(counter);