Skip to content

Commit 48a06e0

Browse files
author
alxkm
committed
refactor: BalancedBrackets
1 parent 101cb95 commit 48a06e0

File tree

2 files changed

+55
-6
lines changed

2 files changed

+55
-6
lines changed

src/main/java/com/thealgorithms/stacks/BalancedBrackets.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,26 +59,22 @@ public static boolean isBalanced(String brackets) {
5959
switch (bracket) {
6060
case '(':
6161
case '[':
62+
case '<':
6263
case '{':
6364
bracketsStack.push(bracket);
6465
break;
6566
case ')':
6667
case ']':
68+
case '>':
6769
case '}':
6870
if (bracketsStack.isEmpty() || !isPaired(bracketsStack.pop(), bracket)) {
6971
return false;
7072
}
7173
break;
7274
default:
73-
/* other character is invalid */
7475
return false;
7576
}
7677
}
7778
return bracketsStack.isEmpty();
7879
}
79-
80-
public static void main(String[] args) {
81-
assert isBalanced("[()]{}{[()()]()}");
82-
assert !isBalanced("[(])");
83-
}
8480
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.thealgorithms.stacks;
2+
3+
import static org.junit.jupiter.api.Assertions.assertFalse;
4+
import static org.junit.jupiter.api.Assertions.assertThrows;
5+
import static org.junit.jupiter.api.Assertions.assertTrue;
6+
7+
import org.junit.jupiter.api.Test;
8+
9+
class BalancedBracketsTest {
10+
11+
@Test
12+
void testIsPaired() {
13+
assertTrue(BalancedBrackets.isPaired('(', ')'));
14+
assertTrue(BalancedBrackets.isPaired('[', ']'));
15+
assertTrue(BalancedBrackets.isPaired('{', '}'));
16+
assertTrue(BalancedBrackets.isPaired('<', '>'));
17+
18+
assertFalse(BalancedBrackets.isPaired('(', ']'));
19+
assertFalse(BalancedBrackets.isPaired('[', ')'));
20+
assertFalse(BalancedBrackets.isPaired('{', '>'));
21+
assertFalse(BalancedBrackets.isPaired('<', ')'));
22+
23+
assertFalse(BalancedBrackets.isPaired('a', 'b'));
24+
assertFalse(BalancedBrackets.isPaired('!', '@'));
25+
}
26+
27+
@Test
28+
void testIsBalanced() {
29+
assertTrue(BalancedBrackets.isBalanced("[()]{}{[()()]()}"));
30+
assertTrue(BalancedBrackets.isBalanced("()"));
31+
assertTrue(BalancedBrackets.isBalanced("[]"));
32+
assertTrue(BalancedBrackets.isBalanced("{}"));
33+
assertTrue(BalancedBrackets.isBalanced("<>"));
34+
assertTrue(BalancedBrackets.isBalanced("[{<>}]"));
35+
assertTrue(BalancedBrackets.isBalanced(""));
36+
37+
assertFalse(BalancedBrackets.isBalanced("[(])"));
38+
assertFalse(BalancedBrackets.isBalanced("([)]"));
39+
assertFalse(BalancedBrackets.isBalanced("{[<]>}"));
40+
assertFalse(BalancedBrackets.isBalanced("["));
41+
assertFalse(BalancedBrackets.isBalanced(")"));
42+
assertFalse(BalancedBrackets.isBalanced("[{"));
43+
assertFalse(BalancedBrackets.isBalanced("]"));
44+
45+
assertFalse(BalancedBrackets.isBalanced("[a+b]"));
46+
assertFalse(BalancedBrackets.isBalanced("a+b"));
47+
}
48+
49+
@Test
50+
void testIsBalancedNull() {
51+
assertThrows(IllegalArgumentException.class, () -> BalancedBrackets.isBalanced(null));
52+
}
53+
}

0 commit comments

Comments
 (0)