【力扣刷题练习】20. 有效的括号

题目描述:

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

有效字符串需满足:

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

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

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

题目解答:

cpp 复制代码
class Solution {
public:
    bool isValid(string s) {
        int n=s.size();
        if (n % 2)
            return false;
        stack<char> st;
        for (int i = 0; i < n; i++) {
            if (s[i] == '(' || s[i] == '{' || s[i] == '[')
                st.push(s[i]);
            else {
                if (!st.empty()) {
                    if (s[i] == ')' && st.top() == '(' ||
                        s[i] == '}' && st.top() == '{' ||
                        s[i] == ']' && st.top() == '['){
                            st.pop();
                            continue;
                        }
                }
                return false;
            }
        }
        return st.empty() ? true : false;
    }
};

题目思路:

栈的基本题型,基本思路为循环字符串,当遇到左括号入栈,遇到右括号则判断是否与栈顶元素匹配,若匹配则将栈顶左括号取出,若不匹配则直接终止,当整个字符串循环结束后以栈内元素是否为空来判断匹配结果。

相关推荐
程序猫.4 分钟前
算法刷题笔记:模拟题从入门到实战(含 LeetCode 例题与习题)
java·数据结构·算法
liliangcsdn8 分钟前
zpos因果对冲的分析和示例
算法
Shan120522 分钟前
经典算法题学习:跳跃游戏IV(一)
算法
AIGCmagic社区36 分钟前
灵巧手VLA真机均分71%,北大DeCAL用接触门控接入触觉
人工智能·算法·aigc·ai多模态
迷途之人不知返1 小时前
算法系列4:前缀和
算法
吠品1 小时前
Python 写入 Excel 的两种主流方案实际用法总结
c语言·开发语言·算法
Zane19941 小时前
归并排序和堆排序都能保证O(nlogn),为什么谁也没法把稳定和原地两个优点占全
算法·排序算法
天天喝旺仔1 小时前
Go 泛型实战:从类型参数、约束到可复用泛型容器与函数
数据结构·算法·容器·go
可爱的小小小狼1 小时前
【无标题】
java·算法
一起努力啊~2 小时前
算法题打卡力扣第1658题:将 x 减到 0 的最小操作数(mid)
学习·leetcode