Stack
import org.junit.jupiter.api.Test;
import java.util.Stack;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
class ValidParentheses {
public boolean isValid(final String s) {
final Stack<Character> stack = new Stack<>();
for (final char c : s.toCharArray()) {
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else if (stack.isEmpty()) {
return false;
} else if (c == ')') {
if (stack.pop() != '(') {
return false;
}
} else if (c == '}') {
if (stack.pop() != '{') {
return false;
}
} else if (c == ']') {
if (stack.pop() != '[') {
return false;
}
} else {
return false;
}
}
return stack.isEmpty();
}
@Test
void givenInput1_whenCheckIfValid_thenReturnTrue() {
final String input = "()";
assertTrue(isValid(input));
}
@Test
void givenInput2_whenCheckIfValid_thenReturnTrue() {
final String input = "()[]{}";
assertTrue(isValid(input));
}
@Test
void givenInput3_whenCheckIfValid_thenReturnFalse() {
final String input = "(]";
assertFalse(isValid(input));
}
@Test
void givenInput4_whenCheckIfValid_thenReturnFalse() {
final String input = "]";
assertFalse(isValid(input));
}
}60. 155. Min Stack
62. Basic Calculator
TODO
Last updated
Was this helpful?