diff --git a/valid-parentheses/prograsshopper.py b/valid-parentheses/prograsshopper.py new file mode 100644 index 000000000..79a5ce995 --- /dev/null +++ b/valid-parentheses/prograsshopper.py @@ -0,0 +1,23 @@ +class Solution: + def isValid(self, s: str) -> bool: + # time complexity: O(n) + # space complexity: O(n) + opens = ['(', '[', '{'] + closes = [')', ']', '}'] + required = [] + pair = { + '(': ')', + '[': ']', + '{': '}' + } + answer = True + for elem in s: + if elem in opens: + required.append(pair[elem]) + else: + if elem in required and required[-1] == elem: + required.pop() + else: + answer = False + break + return True if (answer and len(required) == 0) else False