[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