Skip to content

Instantly share code, notes, and snippets.

@RichardCSantana-zz
Last active April 17, 2017 21:56
Show Gist options
  • Save RichardCSantana-zz/0c5aaff482456ff2e05fa4bb3b449fbc to your computer and use it in GitHub Desktop.
Save RichardCSantana-zz/0c5aaff482456ff2e05fa4bb3b449fbc to your computer and use it in GitHub Desktop.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Stack;
/**
* @author richard.santana
*/
public class BracketsChecker {
private final static List<Character> OPEN_BRACKET = Arrays.asList('{','[','(');
private final static List<Character> CLOSE_BRACKET = Arrays.asList('}',']',')');
public static void main(String[] args) {
String[] testValue = Arrays.asList("{","{}","{[]}()","{[}]","{}[][{()}]").toArray(new String[]{});
System.out.println(Arrays.toString(bracketsCheck(testValue)));
}
private static String[] bracketsCheck(final String[] input) {
List<String> result = new ArrayList<>();
for(String value : input){
result.add(verify(value));
}
return result.toArray(new String[result.size()]);
}
private static String verify(final String value) {
Stack<Character> stack = new Stack<>();
for(Character actual : value.toCharArray()){
if(OPEN_BRACKET.contains(actual)){
stack.add(actual);
}else if (CLOSE_BRACKET.contains(actual)){
Character close = stack.pop();
if(('}' == actual && '{' != close) || (')' == actual && '(' != close) ||(']' == actual && '[' != close)){
return "NO";
}
}
}
return stack.empty() ? "YES" : "NO";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment