Problem Statement
Definition
- Class:
- JustBrackets
- Method:
- getSmallest
- Parameters:
- String
- Returns:
- String
- Method signature:
- String getSmallest(String s)
- (be sure your method is public)
Notes
- Given two distinct strings A and B, we say that A is lexicographically smaller than B if either A is a prefix of B, or there is a nonnegative integer x such that the first x characters of A match the first x characters of B, and the next character of A is smaller than the next character of B.
- Correct bracket sequences include the empty string and everything that can be derived using the following rule: if S and T are correct bracket sequences then both (S) and ST are also correct bracket sequences.
Constraints
- s will contain between 2 and 100 characters, inclusive.
- Each character in s will be either '(' or ')'.
- s will be a correct bracket sequence.
Examples
"()"
Returns: "()"
As we are looking for a non-empty string, Hero cannot erase the last pair of brackets.
"()()"
Returns: "()"
"(())"
Returns: "(())"
Even though Hero could erase one pair of brackets, it is better not to do so: the string "(())" is lexicographically smaller than the string "()".
"(()(()))"
Returns: "((()))"
"((())()(()(())(())))"
Returns: "(((())(())))"
"()()(((()()()()()()(())()(()()((()))((()))()()()()())))())()(())(()(()))()()(())()()"
Returns: "((((((()))((()))()()()()())))())"
"()((())(()()()()())(()()()())()((())()()())((()()))((()())(())((()(()))())()(())())()(())(())()(()))"
Returns: "(((((()))())(())())(())(())(()))"
"()()(()()()())((())())()((()))()(()())"
Returns: "((())())"
"()()(())(()())()()()()(())(()()()(((())))()())()"
Returns: "((((())))()())"
"((()((())))()()()()((()))(()())((())(()))(()))()()((()))()(()())()()"
Returns: "((((())))((())(()))(()))"
"()((((()))()())(())()()(()((()(())))(())())(()))()((()))()()((())())()"
Returns: "(((((())))(())())(()))"
"()()()()((()()())()())(())(()(())(()(()(()))(()))()()()(()()))()(()()()()())(()())(()()())()"
Returns: "((((()))(()))(()()))"
"()(((((())()())(()())()()()()))()(())())()((())()(())())()()()()"
Returns: "(((((())()())(()())()()()()))(())())"
"()()()()((()))()(()(((()))()()((()))()))()()"
Returns: "((((()))((()))()))"
"(())()((()))()(()(()()(()))()())()"
Returns: "(((()))()())"
"(())()(()())"
Returns: "(()())"
"()()()(()(()))"
Returns: "((()))"
"(()(()))(()(()()((()))(()))()()()(()))(()()(()())(()(()))())"
Returns: "((((()))(()))(()))"
"()()(())()()()(())()()()(()()()()()()())(())()(())()()()()()((())())()"
Returns: "((())())"
"()()()()()(()())(())()()(()())()(())((()(()(()())))((()))(()))()(())()()()(()()()(()))"
Returns: "((((()())))((()))(()))"
"()()(()(()()))(()()(((()))(()))())((())())"
Returns: "((((()))(()))())"
"()()()()(())(((()()(()()()()())(())())(())()()(())())()()()()()()()((())(()))(())()()(()()))()"
Returns: "((((()()()()())(())())(())(())())((())(()))(()()))"
"(()()())(()())()(()())()()()()(()())()()((())())()()()()((()))(()()()())(()(()()())(())()((()))()())"
Returns: "(((()))()())"
"(()()()(()())()()())(())(()(()()(()())))()()(()(()))"
Returns: "(((()())))"
"(()((())()()()()()(()())(()(()()))))()()((()))(()()())()(())(()()()()(())()())(()(((()()))))()()()()"
Returns: "((((()()))))"
"((())(((()(()())))()()())()())((()()()(()))()(((()())((())()())(())()())()))(())()()()()(())(()())()"
Returns: "(((((()())))()()())()())"
"((()))()()()()()()(((()))())()"
Returns: "(((()))())"
"(())(())((()())()(())()(()()))(()()(()))"
Returns: "((()())(()()))"
"()(()(()()())(()()))()((()())())()()(())()(())()"
Returns: "((()()())(()()))"
"()()((()))()()()(()()()(())()((()())()())())()()()()()()(())(()(()))()(()()()())()()((()())()())(())"
Returns: "(((()())()())())"
"((())()())(()(())(()()()()()()(()))(()(()))(())(()()()())()(())()()()())()"
Returns: "(((()))((()))(()()()())(())()()()())"
"()()()()(((()())))()(())(()()()(()))()()()()((())())(()(()(())()()(()))()(()()())()())((()()()())())"
Returns: "(((()())))"
"()()()()()()(()(()))()()((()())(()))()()"
Returns: "((()())(()))"
"()((()()))(()()(())()()()()()()(()()()()(()()(()()))(())()()()()(())()()()())())(())"
Returns: "((((()()))(())(())()()()())())"
"()(()())()()()()()()((()()()))"
Returns: "((()()()))"
"(()()(())())(())()()"
Returns: "((())())"
"(()()((())()()()(())))()(((()()))())()"
Returns: "(((()()))())"
"()(((()))()())()()()(()())"
Returns: "(((()))()())"
"((()()())()())()(())"
Returns: "((()()())()())"
"(())(()()()()()()()(())())(((()()))()()((()())())((()((()))(()()())()()())(()))(())()((())))()()"
Returns: "(((((()))(()()())()()())(()))((())))"
"()()(())((())()())()()(())(()()())(()(()()))"
Returns: "((()()))"
"((())(())()(()())()())()()(())(()(((()))()())(()))()()(()())(()())()(())()(())()(())(())()(()()(()))"
Returns: "((((()))()())(()))"
"()()()(()()())(()(()(()))(()())()(()()(())()()()))(())((()()())()()()(()())()(()()()))()()(()((())))"
Returns: "(((())()()()))"
"()(())(()((()())()()()()((()(()())())())()()()())()(())((()))()()(())(())(())(()()(()))())()"
Returns: "(((((()())())())()()()())((()))((()))())"
"()()(())((())()())"
Returns: "((())()())"
"()()(())()()((())()())()"
Returns: "((())()())"
"()()((()(()))()()()())()()(())()()()(())(())()()(())()()()(())"
Returns: "(((()))()()()())"
"()(()((())(()(()())))(()())()()((()(()())()(())()())()()(()())()())()()()()(()()()())())(())(())(())"
Returns: "((((()())(())()())(()())()())(()()()())())"
"()(()())(()())(()(()())()()())"
Returns: "((()())()()())"
"(())(())()()()()((()()((()()))()())()()())()(((())(()))(())(()())()()()())()(())()"
Returns: "((((()()))()())()()())"
"()()(()()((()))(()))()()()()((())()())"
Returns: "(((()))(()))"
"()(((())()()())()((())))()()()(()()()()()()()((()))()(()()(())()))(())()(())(())()"
Returns: "(((())()()())((())))"
"(())()()()((())()(()()())(())(()()(()())()(())((())())()()))()()"
Returns: "((((())())()()))"
"()()(()())(()((()())))()(()(())(()()())()((()())()(()()(()((())))))())()(())()(()())"
Returns: "((((((())))))())"
"(())()()((()))(())()(()(())(()(()))()()(()))()()(())()()()(())()"
Returns: "(((()))(()))"
"()()()(((()))()())((())(((()))())()(()())())"
Returns: "((((()))())(()())())"
"(((()()))()())(())()()()"
Returns: "(((()()))()())"
"((())()(())(()()(())())()(()()())())()()()()()()()()()()(())(()(()))()()(()(()))(())()(()()(()))()()"
Returns: "(((())())(()()())())"
"()()()()(()()((())())()()()()(())())(())()"
Returns: "(((())())(())())"
"()((((())())))((()()((()))()((()))(()())()(())()()()()())(()())()())()()(())"
Returns: "((((())())))"
"((()(()())())()()()())()()()(())()(()())((()())()())(()()(()()(())())()()()()(()()((()(())))())(()))"
Returns: "(((((())))())(()))"
"((((())())()())(()())()()()()())(()()()()()()())"
Returns: "((((())())()())(()())()()()()())"
"()()()()()()(())()((()))()(()())()(()(()()()()()())()()()()()())()()(())()((()(())))()(()()(()))()"
Returns: "(((())))"
"(((()))()()(()()()()((())())()))()()()()()()"
Returns: "((((())())()))"
"(())(()()()()(()(((())))(()))()()()()())"
Returns: "(((((())))(()))()()()()())"
"()()()()(()(()())()(())(())()((())(())(())))"
Returns: "(((())(())(())))"
"()(()((())())(())()(()()(()()()()))())()()(())()()((())(()()(()())()())()(())(()))(()()(()))"
Returns: "(((()()()()))())"
"()(())(()(((())())()(()(())(()(()()())()())((()))())()(()()()))(()()))"
Returns: "(((((()()())()())((()))())(()()()))(()()))"
"()()()((()())()()(()()()())()(())()()()()(()()())()()()()()()(()()())()(()))"
Returns: "((()()()())(()()())(()()())(()))"
"(()(()(())(()))()())()(()()()()()((()()(()()))(()))()()()()()(()()))()()(())"
Returns: "((((()()))(()))(()()))"
"(()(()())(()())()(())())()()()()(()())()()((())()()()())()()()()((())())()"
Returns: "((()())(()())(())())"
"()()((()))(()()()(()()))"
Returns: "((()()))"
"(()())(()()(())(()(()))(()())()())(()()()()())"
Returns: "(((()))(()())()())"
"()(())()"
Returns: "(())"
"(()((())))(())()()()()()(((()))()((())))()()()()()"
Returns: "(((()))((())))"
"(()(()((()(()()(()()(()((((()(()()(()((()(()()())())()())()))())()())()())()())())))())()())())())"
Returns: "((((((((((((((((()()())())()())()))())()())()())()())())))())()())())())"
"(()()(()()(()()((()()(()(()(()()(((((()()((()()(()()))()()))()())()())()())()()))())()))()()))))"
Returns: "((((((((((((((((()()))()()))()())()())()())()()))())()))()()))))"
"((()(()(()()((()()((()()(()()((()()(()((()(()()())())()())()))()())))()()))()()))())())()())"
Returns: "(((((((((((((((()()())())()())()))()())))()()))()()))())())()())"
"(()(()()(()()(()((()()(()(()(()(((()()(()()(()(()(()())())())))()())()())())())()))()())())))())"
Returns: "((((((((((((((((()())())())))()())()())())())()))()())())))())"
"(()((()()((()()(()((()()(()()(()()((()()((()()(()(()())()))()()))()()))))()())()))()()))()())())"
Returns: "((((((((((((((((()())()))()()))()()))))()())()))()()))()())())"
"(()(((()(()()(()()((()((()((()()(()()((()()(()()()))()())))()())())()())())()())))())()())()())())"
Returns: "((((((((((((((((()()()))()())))()())())()())())()())))())()())()())())"
"(()()(()()(()()(()()(((()()((((()(()()(()()((()()(()()(())))()())))())()())()())()()))()())()())))))"
Returns: "(((((((((((((((((())))()())))())()())()())()()))()())()())))))"
"(()()((()()(((()()(()((()((()(()()(()(()(()(()())())())()))())()())())()())()))()())()()))()()))"
Returns: "((((((((((((((((()())())())()))())()())())()())()))()())()()))()()))"
"(()(()()(()((()()(()()(((()(((()()((()((()())()())())()()))()())()())())()())()())))()())()))())"
Returns: "((((((((((((((((()())()())())()()))()())()())())()())()())))()())()))())"
"((()()((()()((()((()()(((()()(()(()()(((()(())())()())()()))()))()())()()))()())())()()))()()))()())"
Returns: "(((((((((((((((((())())()())()()))()))()())()()))()())())()()))()()))()())"
"((()(())()(()(())(()))(())()(()())((()))))"
Returns: "((((())(()))((()))))"
"(((())()(()(())(())))()(()(()(()))))(((())()(()(())(())))()(()(()(()))))()()()()"
Returns: "((((())(())))(((()))))"
"(((())()(()(())(())))()(()(()(()))))(((())()(()(())(())))()(()(()(()))))(())"
Returns: "((((())(())))(((()))))"
"(((((((((()))))))((()))((()())))))"
Returns: "(((((((((()))))))((()())))))"
"((()))(()(()))(()(()))(()(()))(()(()))(()(()))()"
Returns: "((()))"
"()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()"
Returns: "()"
"(((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))"
Returns: "(((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))"
"()(())"
Returns: "(())"
"((())(((()(())((()((()))()())((()()(((()()())(()))()))(()((()))))((()())))((((()()(()((())))))))))))"
Returns: "(((((((((((())))))))))))"
"()()()()()()()()()()()()()()()()()()()()()((()))()()()()()()()()()()()()()()()()()()()()()"
Returns: "((()))"