redice44

[Solution] FreeCodeCamp: No Repeats Please

May 20th, 2015
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function permAlone(str) {
  2.   return permDupes(str.length,dupes(str));
  3. }
  4.  
  5. function dupes(str)
  6. {
  7.   var count = 0;
  8.   for( var i = 0; i < str.length; i++)
  9.     {
  10.       for( var j = i+1; j < str.length; j++ )
  11.         {
  12.           if(str[i] === str[j])
  13.             {
  14.               count++;
  15.               str = str.substr(0,j)+str.substr(j+1,str.length);
  16.               j--;
  17.             }
  18.         }
  19.     }
  20.   return count;
  21. }
  22.  
  23. function permDupes(n, dupes)
  24. {
  25.   // Same letter case
  26.   if(dupes + 1 === n)
  27.     return 0;
  28.  
  29.   // No more Duplicates
  30.   if(dupes <= 0)
  31.     return 0;
  32.   return factoral(n) - 2 * factoral(n-1) - 2 * permDupes(n-1,dupes-1);
  33. }
  34.  
  35. function factoral(num){
  36.   if(num <= 1)
  37.     return 1;
  38.   return num * factoral(num-1);
  39. }
  40.  
  41. permAlone('aaaaaaaaaa');
Add Comment
Please, Sign In to add comment