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.
Example 1:
Input: s = "()"
Output: true
Example 2:
Input: s = "()[]{}"
Output: true
Example 3:
Input: s = "(]"
Output: false
Example 4:
Input: s = "([)]"
Output: false
Example 5:
Input: s = "{[]}"
Output: true
Constraints:
1 <= s.length <= 10^4
s consists of parentheses only '()[]{}'.
Solution in python:
class Solution:
def isValid(self, s: str) -> bool:
stack = ['0']
for item in s:
# if (item in ')]}') and (stack[-1] in '([{') and (')]}'.index(item) == '([{'.index(stack[-1])):
if (item == ')' and stack[-1] == '(') or (item == ']' and stack[-1] == '[') or (item == '}' and stack[-1] == '{'):
stack.pop()
else:
stack.append(item)
if len(stack) == 1:
return True
else:
return False
留言