From c6ecb855072ee08fc4084d3761629588324c32d7 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Thu, 27 Aug 2026 14:31:36 -0400 Subject: [PATCH] feat(work): add valid parentheses solution --- work/Easy/String/20.valid-parentheses.py | 76 ++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 work/Easy/String/20.valid-parentheses.py diff --git a/work/Easy/String/20.valid-parentheses.py b/work/Easy/String/20.valid-parentheses.py new file mode 100644 index 0000000..00310dd --- /dev/null +++ b/work/Easy/String/20.valid-parentheses.py @@ -0,0 +1,76 @@ +""" +20. Valid Parentheses +Difficulty: Easy +https://leetcode.com/problems/valid-parentheses/ + +────────────────────────────────────────────────── + +Given a string s containing just the characters '(', ')', '{', '}', +'[' and ']', determine if the input string is valid. + +An input string is valid if: + + • Open brackets must be closed by the same type of brackets. + + • Open brackets must be closed in the correct order. + +• Every close bracket has a corresponding open bracket of the same +type. + + + +Example 1: + +Input: s = "()" + +Output: true + +Example 2: + +Input: s = "()[]{}" + +Output: true + +Example 3: + +Input: s = "(]" + +Output: false + +Example 4: + +Input: s = "([])" + +Output: true + +Example 5: + +Input: s = "([)]" + +Output: false + + + +Constraints: + + • 1 <= s.length <= 10^4 + + • s consists of parentheses only '()[]{}'. +""" + + +class Solution: + def isValid(self, s: str) -> bool: + stack = [] + pairs = {")": "(", "]": "[", "}": "{"} + + for c in s: + if c in pairs: + if stack and pairs[c] == stack[-1]: + stack.pop() + else: + return False + else: + stack.append(c) + + return True if not stack else False