leetcode代码记录(有效的括号

简介: leetcode代码记录(有效的括号

1. 题目:

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

每个右括号都有一个对应的相同类型的左括号。

示例 1:

输入:s = “()”

输出:true

示例 2:

输入:s = “()[]{}”

输出:true

示例 3:

输入:s = “(]”

输出:false

2. 我的代码:

class Solution:
    def isValid(self, s: str) -> bool:
        # 对照字典
        dic = {'.': '?', '(': ')', '[': ']', '{': '}'}
        # 初始化栈
        stack = ['.']
        for c in s + '?':
            if c in dic:
                stack.append(c)
            else:
                c_last = stack.pop()
                if dic[c_last] != c:
                    return False
        if stack == []:
            return True
        else:
            return False


当所有的字符都判断完后,剩余的为空,但是为了防止类似于’]'的报错情况,将栈底和栈顶加入自己设定的元素,来判断最后一刻是否空栈。这里使用的是 ‘.’: ‘?’ 两个元素

目录
相关文章
|
4天前
|
机器学习/深度学习
leetcode代码记录(旋转图像
leetcode代码记录(旋转图像
9 0
|
4天前
|
算法
leetcode代码记录(全排列 II
leetcode代码记录(全排列 II
13 4
|
4天前
|
算法
leetcode代码记录(全排列
leetcode代码记录(全排列
12 1
|
4天前
|
索引
leetcode代码记录(Z 字形变换
leetcode代码记录(Z 字形变换
11 1
|
4天前
leetcode代码记录(最长回文子串
leetcode代码记录(最长回文子串
9 2
|
4天前
leetcode代码记录(回文数
leetcode代码记录(回文数
12 1
|
4天前
|
算法
leetcode代码记录(寻找两个正序数组的中位数
leetcode代码记录(寻找两个正序数组的中位数
13 2
|
4天前
leetcode代码记录(两数之和
leetcode代码记录(两数之和
11 1
|
4天前
|
索引
leetcode代码记录(最长公共子序列
leetcode代码记录(最长公共子序列
7 0
|
4天前
|
索引
leetcode代码记录(最长重复子数组
leetcode代码记录(最长重复子数组
12 0