给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()" 输出: true
示例 2:
输入: "()[]{}" 输出: true
示例 3:
输入: "(]" 输出: false
示例 4:
输入: "([)]" 输出: false
示例 5:
输入: "{[]}" 输出: true
**难度**: Easy
**标签**: 栈、 字符串、
# -*- coding: utf-8 -*-
# @Author : LG
"""
执行用时:40 ms, 在所有 Python3 提交中击败了77.59% 的用户
内存消耗:13.7 MB, 在所有 Python3 提交中击败了62.39% 的用户
解题思路:
栈,使用列表模拟进栈出栈操作
"""
class Solution:
def isValid(self, s: str) -> bool:
l_r = {'(': ')', '{': '}', '[': ']'}
record = []
for c in s:
if c == ' ':
continue
if c == '(':
record.append('(')
elif c == '[':
record.append('[')
elif c == '{':
record.append('{')
else:
if record:
r_ = record.pop()
if l_r[r_] != c:
print(r_, '==', c)
return False
else:
return False
if record == []:
return True
else:
return False