面试150 有效的括号

思路

通过栈去模拟,如果是遇到左括号,右括号进栈,如果当前栈一直为空或者当前元素与栈顶元素不相同,则说明不是有效的括号,直接返回False,然后如果当前元素和栈顶元素匹配,则将栈内的元素弹出。最后如果栈为空,说明是有效的括号,反则不是

python 复制代码
class Solution:
    def isValid(self, s: str) -> bool:
        stack=[]
        for i in range(len(s)):
            if s[i]=='(':
                stack.append(')') #右括号进栈
            elif s[i]=='{':
                stack.append('}')
            elif s[i]=='[':
                stack.append(']')
            elif len(stack)==0 or s[i]!=stack[-1]:#短路效应,需要先写前一个,不然可能遇到空栈操作
                return False
            else:
                stack.pop()
        if len(stack)==0:
            return True
        else:
            return False
相关推荐
liulilittle1 天前
UTF-8 编解码可视化分析
c++·字符串·unicode·string·字符·char·utf8
执子手 吹散苍茫茫烟波4 天前
leetcode415. 字符串相加
java·leetcode·字符串
pusue_the_sun5 天前
数据结构——栈和队列oj练习
c语言·数据结构·算法··队列
夏天ccys11 天前
LeetCode Day5 -- 栈、队列、堆
算法·leetcode···队列
yzzzzzzzzzzzzzzzzz14 天前
leetcode热题——有效的括号
算法·
回忆是昨天里的海15 天前
3.3.2_1栈在表达式求值中的应用(上)
java··后缀表达式·前缀表达式
许野平20 天前
Rust:开发 DLL 动态链接库时如何处理 C 字符串
c语言·开发语言·rust·字符串·动态库·dll
神经兮兮的小饼25 天前
字符串是数据结构还是数据类型?
数据结构·字符串
剪一朵云爱着1 个月前
力扣946. 验证栈序列
算法·
点云SLAM1 个月前
C++中std::string和std::string_view使用详解和示例
开发语言·c++·算法·字符串·string·c++标准库算法·string_view