From 4a5bf39f8e196efd9772d3708217dd5554d14a1d Mon Sep 17 00:00:00 2001 From: Taranjeet Singh Kalsi Date: Tue, 8 Oct 2024 00:18:02 +0530 Subject: [PATCH] Add another method to check valid parentheses in ValidParentheses.java (#5616) --- .../strings/ValidParentheses.java | 18 ++++++++++++++++++ .../strings/ValidParenthesesTest.java | 3 +++ 2 files changed, 21 insertions(+) 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("(]")); } }