Sha256: 660fdadf8e596d86127efbfc8c3332d6355167fd549f994d90c66e9a4661e1ea
Contents?: true
Size: 1.25 KB
Versions: 373
Compression:
Stored size: 1.25 KB
Contents
import java.util.*; final class BracketChecker { private static final Map<Character, Character> BRACKET_PAIR_MAP = new HashMap<Character, Character>() {{ put('[', ']'); put('{', '}'); put('(', ')'); }}; private static boolean isOpeningBracket(final char character) { return BRACKET_PAIR_MAP.keySet().contains(character); } private static boolean isClosingBracket(final char character) { return BRACKET_PAIR_MAP.values().contains(character); } private final String expression; BracketChecker(final String expression) { this.expression = expression; } boolean areBracketsMatchedAndNestedCorrectly() { final Stack<Character> bracketsStack = new Stack<>(); for (final char character : expression.toCharArray()) { if (isOpeningBracket(character)) { bracketsStack.push(character); } else if (isClosingBracket(character)) { if (bracketsStack.isEmpty()) { return false; } if (!BRACKET_PAIR_MAP.get(bracketsStack.pop()).equals(character)) { return false; } } } return bracketsStack.isEmpty(); } }
Version data entries
373 entries across 373 versions & 1 rubygems