DavidNorgren

Untitled

Apr 16th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function bracketsAreValid(brackets)
  2. {
  3.     var repl = brackets.replace(/\(\)/g, "");
  4.     if (repl === "")
  5.         return true;
  6.     if (brackets === repl)
  7.         return false;
  8.     return bracketsAreValid(repl);
  9. }
  10.  
  11. function reverse(brackets, start, end)
  12. {
  13.     var sub = brackets.substring(start, end + 1);
  14.     sub = sub.replace(/\(/g, "-");
  15.     sub = sub.replace(/\)/g, "(");
  16.     sub = sub.replace(/-/g, ")");
  17.     return brackets.substring(0, start) +  sub + brackets.substring(end + 1, brackets.length);
  18. }
  19.  
  20. function canBeReversed(brackets)
  21. {
  22.     if (bracketsAreValid(brackets))
  23.         return true;
  24.    
  25.     for (var start = 0; start < brackets.length - 1; start++)
  26.         for (var end = start; end < brackets.length; end++)
  27.             if (bracketsAreValid(reverse(brackets, start, end)))
  28.                 return true;
  29.    
  30.     return false;
  31. }
  32.  
  33.  
  34. // TEST
  35. var test1 = "())(";
  36. var test2 = "()))";
  37. var test3 = ")))(";
  38. var test4 = "()";
  39. var test5 = "()()";
  40.  
  41. console.log(test1 + " => " + canBeReversed(test1));
  42. console.log(test2 + " => " + canBeReversed(test2));
  43. console.log(test3 + " => " + canBeReversed(test3));
  44. console.log(test4 + " => " + canBeReversed(test4));
  45. console.log(test5 + " => " + canBeReversed(test5));
Advertisement
Add Comment
Please, Sign In to add comment