有效的括号
题目描述:
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "([)]"
输出: false
示例 3:
输入: "{[]}"
输出: true
解题思路:
本题主要考察堆栈的使用,以及字典键值对的使用
- 简单判断字符串
s
是否满足要求 - 创建一个由三种括号组成的键值对字典
d
- 对字符串数组进行遍历,如果是左括号,则入栈
- 如果是右括号,则判断两点,第一是是否有左括号与其匹配,第二点是如果由左括号与其匹配,是不是相同位置的左括号,如果是则利用
pop()
函数出栈
Python源码:
class Solution:
def isValid(self, s: str) -> bool:
if len(s) % 2 == 1:
return False
if len(s) == 0:
return True
d = {'{': '}', '[': ']', '(': ')'}
stack = []
for i in s:
if i in d:
stack.append(i)
else:
if not stack or d[stack.pop()] != i:
return False
return len(stack) == 0
欢迎关注我的github:https://github.com/UESTCYangHR