From 579e90ba9491d44c675a8462e59388d59e0449a7 Mon Sep 17 00:00:00 2001 From: sangge-rockpi <2251250136@qq.com> Date: Sat, 20 Jan 2024 18:19:37 +0800 Subject: [PATCH] update 20 --- leetcode/20.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/leetcode/20.py b/leetcode/20.py index e3c5727..cfca09e 100644 --- a/leetcode/20.py +++ b/leetcode/20.py @@ -4,6 +4,8 @@ class Solution: def isValid(self, s: str) -> bool: + """ + # too slow symbol_dict = {"(": ")", "{": "}", "[": "]"} stack = [] for i in s: @@ -16,8 +18,8 @@ class Solution: try: if symbol_dict[stack_top] == i: continue - else: - stack.append(stack_top) + + stack.append(stack_top) except KeyError: return False @@ -28,3 +30,20 @@ class Solution: return False return True + """ + + # Optimized solution + bracket_map = {")": "(", "}": "{", "]": "["} + stack = [] + + for char in s: + if char in bracket_map: + top_element = stack.pop() if stack else "#" + + if bracket_map[char] != top_element: + return False + + else: + stack.append(char) + + return not stack