Skip to content

Commit 81293eb

Browse files
solves valid parantheses
1 parent 96cc965 commit 81293eb

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
| 9 | [PalindromeNumber](https://leetcode.com/problems/palindrome-number/) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](https://github.com/anishLearnsToCode/leetcode-algorithms/blob/master/src/PalindromeNumber.java) |
99
| 13 | [Roman To Integer](https://leetcode.com/problems/roman-to-integer/) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](https://github.com/anishLearnsToCode/leetcode-algorithms/blob/master/src/RomanToInteger.java) |
1010
| 14 | [Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](https://github.com/anishLearnsToCode/leetcode-algorithms/blob/master/src/LongestCommonPrefix.java) |
11-
| 2 | []() | Easy | |
11+
| 20 | [ValidParentheses](https://leetcode.com/problems/valid-parentheses/) | Easy | |
1212
| 2 | []() | Easy | |
1313
| 2 | []() | Easy | |
1414
| 2 | []() | Easy | |

src/ValidParentheses.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// https://leetcode.com/problems/valid-parentheses/
2+
3+
import java.util.HashMap;
4+
import java.util.HashSet;
5+
import java.util.Map;
6+
import java.util.Set;
7+
import java.util.Stack;
8+
9+
public class ValidParentheses {
10+
private static final Set<Character> openBrackets = new HashSet<>();
11+
private static final Map<Character, Character> inverse = new HashMap<>();
12+
13+
static {
14+
openBrackets.add('(');
15+
openBrackets.add('{');
16+
openBrackets.add('[');
17+
18+
inverse.put(')', '(');
19+
inverse.put('}', '{');
20+
inverse.put(']', '[');
21+
}
22+
23+
public boolean isValid(String string) {
24+
Stack<Character> brackets = new Stack<>();
25+
for(int index = 0 ; index < string.length() ; index++) {
26+
char character = string.charAt(index);
27+
if (isOpenBracket(character)) {
28+
brackets.push(character);
29+
} else {
30+
if (!brackets.isEmpty() && brackets.peek() == inverse(character)) {
31+
brackets.pop();
32+
} else {
33+
return false;
34+
}
35+
}
36+
}
37+
38+
return brackets.isEmpty();
39+
}
40+
41+
private char inverse(char bracket) {
42+
return inverse.get(bracket);
43+
}
44+
45+
private boolean isOpenBracket(char bracket) {
46+
return openBrackets.contains(bracket);
47+
}
48+
}

0 commit comments

Comments
 (0)