MCPcopy Create free account
hub / github.com/codemistic/Data-Structures-and-Algorithms / BalancedBrackets

Class BalancedBrackets

Java/Stack/BalancedBrackets.java:5–32  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3import java.util.Stack;
4
5public class BalancedBrackets {
6 public static boolean isBalanced(String expression) {
7 Stack<Character> bracketStack = new Stack<>();
8 int n = expression.length();
9 for(int i = 0 ; i < n ; i++){
10 char bracket = expression.charAt(i);
11 if(isNotB(bracket)) continue;
12 if(isOpeningB(bracket)) bracketStack.push(bracket);
13 else{
14 if(!bracketStack.isEmpty() && validOpeningB(bracket) != bracketStack.peek()) return false;
15 else bracketStack.pop();
16 }
17 }
18 return bracketStack.isEmpty();
19 }
20 static boolean isNotB(char bracket){
21 return !("(){}[]".contains(bracket + ""));
22 }
23 static boolean isOpeningB(char bracket){
24 return "({[".contains(bracket + "");
25 }
26 static char validOpeningB(char bracket){
27 if(bracket == ')') return '(';
28 if(bracket == '}') return '{';
29 if(bracket == ']') return '[';
30 return '\0';
31 }
32}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected