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

leetcode第20题(有效的括号)

思路解析(使用栈):

  • 使用一个栈来保存左括号。

  • 每当遇到一个右括号时,检查栈顶元素是否是匹配的左括号。

    • 如果匹配,则弹出栈顶元素;

    • 如果不匹配或者栈为空,则说明无效;

  • 最后如果栈为空,说明全部括号匹配成功。

 

#define MAX 100000
bool isValid(char* s) {char stack[MAX];int top = -1;for(int i = 0; s[i] != '\0'; i++){if(s[i] == '(' || s[i] == '[' || s[i] == '{'){if(top < MAX - 1){stack[++ top] = s[i];}else{return false;   //栈满}}else if (s[i] == ')' || s[i] == ']' || s[i] == '}'){if(top == -1){return false;}else if ((s[i] == ')' && stack[top] == '(') || (s[i] == ']' && stack[top] == '[') || (s[i] == '}' && stack[top] == '{')){top--;}else{return false;}}else{return false;}}return top == -1;
}


http://www.mrgr.cn/news/98979.html

相关文章:

  • FreeRTOS任务通知
  • MDA测量数据查看器【内含工具和源码地址】
  • Qt QTimer 详解与使用指南
  • 力扣刷题Day 20:柱状图中最大的矩形(84)
  • 解锁C++ gRPC:快速入门指南
  • Java集合框架深度解析:HashMap、HashSet、TreeMap、TreeSet与哈希表原理详解
  • Json 在线格式化 - 加菲工具
  • 工厂方法模式详解及在自动驾驶场景代码示例(c++代码实现)
  • 【多目标进化算法】NSGA-II 算法(结合例子)
  • 2048小游戏C++板来啦!
  • MATLAB 控制系统设计与仿真 - 36
  • 论文阅读:2023 ICLR Safe RLHF: Safe Reinforcement Learning from Human Feedback
  • C++智能指针的知识!
  • 阿里云服务器搭建开源版禅道
  • Web三漏洞学习(其三:rce漏洞)
  • java线程池原理及使用和处理流程
  • 算法-链表
  • 基于autoware1.14的实车部署激光雷达循迹,从建图、定位、录制轨迹巡航点、到实车运行。
  • Anconda环境下修改Jupyter notebook的启动路径(Windows)
  • 原型模式详解及在自动驾驶场景代码示例(c++代码实现)