LeetCode 20. 有效的括号

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

**输入:**s = "()"

**输出:**true

示例 2:

**输入:**s = "()\[\]{}"

**输出:**true

示例 3:

**输入:**s = "(]"

**输出:**false

示例 4:

**输入:**s = "(\[\])"

**输出:**true

示例 5:

**输入:**s = "()"

**输出:**false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成
cpp 复制代码
class Solution {
public:
    bool isValid(string s) {
        stack<char> st;
        for(auto c:s)
        {
            if(c==')')
            {
                if(st.empty()||st.top()!='(')
                return false;
                else
                st.pop();
            }else if(c==']')
            {
                if(st.empty()||st.top()!='[')
                return false;
                else
                st.pop();
            }else if(c=='}')
            {
                if(st.empty()||st.top()!='{')
                return false;
                else
                st.pop();
            }else{
                st.push(c);
            }
        }
       return st.empty();
    }
};
相关推荐
WBluuue9 小时前
Codeforces 1096 Div3(ABCDEFGH)
c++·算法
wanzehongsheng9 小时前
基于天文算法的双轴太阳能追踪系统:从原理到工程实现
算法
basketball61610 小时前
Kadane算法 C++实现
java·c++·算法
handler0110 小时前
【C++】二叉搜索树详解及其模拟实现(代码)
开发语言·c++·算法·c··二叉搜索树·搜索树
luj_176810 小时前
残熵算法的稳健防灾逻辑
c语言·开发语言·c++·经验分享·算法
玖釉-10 小时前
二叉树基础详解:TreeNode、buildTree、deleteTree 与 printTree 的实现原理(C++)
c++·windows·算法
Severus_black10 小时前
【初阶数据结构与算法】八大排序之非比较排序(计数排序),一次性讲清!
数据结构·算法·排序算法
罗西的思考10 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (4)--- 系统架构
人工智能·算法·机器学习
QiLinkOS10 小时前
从技术到资产的跃迁:企业专利布局的深层逻辑
c语言·数据结构·c++·单片机·嵌入式硬件·算法·开源
aini_lovee10 小时前
FMCW雷达测速测距系统(锯齿波 + CFAR检测)
算法