diff --git a/src/main/java/com/thealgorithms/strings/ValidParentheses.java b/src/main/java/com/thealgorithms/strings/ValidParentheses.java index f4f3761b0..629fee495 100644 --- a/src/main/java/com/thealgorithms/strings/ValidParentheses.java +++ b/src/main/java/com/thealgorithms/strings/ValidParentheses.java @@ -38,4 +38,22 @@ public final class ValidParentheses { } return head == 0; } + public static boolean isValidParentheses(String s) { + int i = -1; + char[] stack = new char[s.length()]; + String openBrackets = "({["; + String closeBrackets = ")}]"; + for (char ch : s.toCharArray()) { + if (openBrackets.indexOf(ch) != -1) { + stack[++i] = ch; + } else { + if (i >= 0 && openBrackets.indexOf(stack[i]) == closeBrackets.indexOf(ch)) { + i--; + } else { + return false; + } + } + } + return i == -1; + } } diff --git a/src/test/java/com/thealgorithms/strings/ValidParenthesesTest.java b/src/test/java/com/thealgorithms/strings/ValidParenthesesTest.java index 22deb4b14..2b6884c91 100644 --- a/src/test/java/com/thealgorithms/strings/ValidParenthesesTest.java +++ b/src/test/java/com/thealgorithms/strings/ValidParenthesesTest.java @@ -10,15 +10,18 @@ public class ValidParenthesesTest { @Test void testOne() { assertTrue(ValidParentheses.isValid("()")); + assertTrue(ValidParentheses.isValidParentheses("()")); } @Test void testTwo() { assertTrue(ValidParentheses.isValid("()[]{}")); + assertTrue(ValidParentheses.isValidParentheses("()[]{}")); } @Test void testThree() { assertFalse(ValidParentheses.isValid("(]")); + assertFalse(ValidParentheses.isValidParentheses("(]")); } }