[LeetCode][python3]0020. Valid Parentheses
Start the Journey
N2I -2020.04.02
1. My first solution
class Solution: def isValid(self, s: str) -> bool: upper=['s'] for item in s: if item in ['(','[','{']: upper.append(item) if item==')': if upper.pop(-1)!='(': return False if item==']': if upper.pop(-1)!='[': return False if item=='}': if upper.pop(-1)!='{': return False if upper==['s']: return True return False
Explanation:
The solution use a buffer to solve this problem. For the elements
['(','[','{']
, has to be matched in the sequence “Last in, First out”. And the element ['s']
to check if buffer is empty.2. A clean solution
class Solution: def isValid(self, s: str) -> bool: mapping = {')':'(', '}':'{', ']':'['} stack = [] if not s: return True for ele in s: if ele in mapping: if stack: top = stack.pop() else: top = '$' if top != mapping[ele]: return False else: stack.append(ele) return not stack
Explanation:
A more flexible way to code the script.
Comments
Post a Comment