LeetCode20:有效的括号

LeetCode20:有效的括号

Difficulty
⭐⭐
Creat
Apr 6, 2022 08:03 AM
LastEdit
Last updated April 19, 2022

题目

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
  1. 左括号必须用相同类型的右括号闭合。
  1. 左括号必须以正确的顺序闭合。
示例 1:
输入:s = "()" 输出:true
示例 2:
输入:s = "()[]{}" 输出:true
示例 3:
输入:s = "(]" 输出:false
示例 4:
输入:s = "([)]" 输出:false
示例 5:
输入:s = "{[]}" 输出:true
提示:
  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成
 

解析

使用「栈」这一数据结构来解决。
class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ if len(s) % 2 == 1: return False pairs = { ")": "(", "]": "[", "}": "{", } stack = list() for ch in s: if ch in pairs: if not stack or stack[-1] != pairs[ch]: return False stack.pop() else: stack.append(ch) return not stack