-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathBrackets.java
More file actions
36 lines (29 loc) · 1.09 KB
/
Copy pathBrackets.java
File metadata and controls
36 lines (29 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.Stack;
class Solution {
public int solution(String S) {
String openBrackets = "{[(";
String closeBrackets = "}])";
Stack<Character> stack = new Stack<>();
for(char c: S.toCharArray()) {
if(isInBrackets(c, openBrackets)) { stack.push(c); }
else {
if(stack.isEmpty() ||
stack.pop() != getCorrespondingOpenBracket(c, openBrackets, closeBrackets))
{ return 0; }
}
}
if(stack.isEmpty()) return 1;
return 0;
}
private boolean isInBrackets(char c, String brackets) {
if(brackets.indexOf(c) >= 0) { return true; }
return false;
}
private char getCorrespondingOpenBracket(char closeBracket, String openBrackets, String closeBrackets) {
return openBrackets.charAt(closeBrackets.indexOf(closeBracket));
}
}