当前位置: 首页 > article >正文

14.力扣c++刷题-->有效括号

题目:给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。

#include<iostream>
#include<vector>
#include<map>
#include<unordered_map>
#include<stack>
using namespace std;

unordered_map<char, char> up = {
    {'(' , ')'},
    {'{' , '}'},
    {'[' , ']'},
};

class Solution 
{
public:
    bool isValid(string s)
    {
        stack<char> st;
        for (char c : s)
        {
            if (up.count(c))  //判断c是否是up的键,是的话就压栈
            {
                st.push(c);   
            }
            else if(st.empty() ||  up[st.top()] != c)
            {
                return false;
            }
            else //up[st.top()] == c
            {
                st.pop();
            }
        }
        return st.empty();
    }
};

int main()
{
    Solution a;

    cout <<"a.isPalindrome : " << a.isValid("{([])}") << endl;
    return 0;
}


http://www.kler.cn/a/105994.html

相关文章:

  • 【新春特辑】2025年1月科技浪潮中的AI最新时事与科技趋势
  • C++并发编程指南05
  • MySQL通过binlog恢复数据
  • UE求职Demo开发日志#15 思路与任务梳理、找需要的资源
  • 阿里云域名备案
  • Baklib打造高效内容管理平台提升协作与创作体验
  • MemCache与Redis如何选择?
  • 基于.Net CEF 实现 Vue 等前端技术栈构建 Windows 窗体应用
  • 【机器学习合集】优化目标与评估指标合集 ->(个人学习记录笔记)
  • 简单的前端语言
  • 21.9 Python 使用Selenium库
  • 用爬虫代码爬取高音质音频示例
  • 微信native支付对接
  • 计算机网络-应用层(2)
  • V8 引擎中的垃圾收集器
  • 202212 青少年等级考试机器人实操真题六级试卷
  • 全自动洗衣机什么牌子好?迷你洗衣机品牌推荐
  • 在PowerBI中提取IFC文件中的数据
  • [Hive] 常见函数
  • BUUCTF刷题记录
  • echarts将展示全天的数据,如一天的电费,一个停车场一天的饱和度等问题
  • Qt中的单例模式
  • 游戏研发的解决方案有哪些?
  • onclick事件的用法
  • uni-app:实现picker下拉列表的默认值设置
  • kafka丢数据的原因