Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function bracketsAreValid(brackets)
- {
- var repl = brackets.replace(/\(\)/g, "");
- if (repl === "")
- return true;
- if (brackets === repl)
- return false;
- return bracketsAreValid(repl);
- }
- function reverse(brackets, start, end)
- {
- var sub = brackets.substring(start, end + 1);
- sub = sub.replace(/\(/g, "-");
- sub = sub.replace(/\)/g, "(");
- sub = sub.replace(/-/g, ")");
- return brackets.substring(0, start) + sub + brackets.substring(end + 1, brackets.length);
- }
- function canBeReversed(brackets)
- {
- if (bracketsAreValid(brackets))
- return true;
- for (var start = 0; start < brackets.length - 1; start++)
- for (var end = start; end < brackets.length; end++)
- if (bracketsAreValid(reverse(brackets, start, end)))
- return true;
- return false;
- }
- // TEST
- var test1 = "())(";
- var test2 = "()))";
- var test3 = ")))(";
- var test4 = "()";
- var test5 = "()()";
- console.log(test1 + " => " + canBeReversed(test1));
- console.log(test2 + " => " + canBeReversed(test2));
- console.log(test3 + " => " + canBeReversed(test3));
- console.log(test4 + " => " + canBeReversed(test4));
- console.log(test5 + " => " + canBeReversed(test5));
Advertisement
Add Comment
Please, Sign In to add comment