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

leetcode刷题日记——有效的括号

[ 题目描述 ]:
在这里插入图片描述
[ 思路 ]:

  • 该题为栈的经典应用
  • 遇见左括号即压入栈中,遇见右括号则弹出栈顶元素与其匹配
    • 匹配成功,则继续遍历
    • 匹配不成功,则返回无效
  • 期间可能出现,左括号多余右括号(遍历完成后,判断栈是否已清空),或者右括号比左括号多(遇见右括号,栈中无括号,直接返回false)
  • 运行如下
    在这里插入图片描述
bool isValid(char* s) {int top=-1,len=strlen(s);char* stack=(char*)malloc(sizeof(char)*(len));for(int i=0;i<len;i++){if (s[i] == '(' || s[i] == '[' || s[i] == '{') {stack[++top] = s[i];} else {if (top == -1) return false;  // 栈空但遇到右括号char c = stack[top--];if ((s[i] == ')' && c != '(') || (s[i] == ']' && c != '[') || (s[i] == '}' && c != '{')) {return false;}}}free(stack);return top==-1;
}

[ 官方题解 ]:

  • 栈,基本同上,增加了一个判断字符串长度是否为偶数,偶则可能匹配,奇数则一定不匹配,因为括号是成双出现的
http://www.xdnf.cn/news/1859.html

相关文章:

  • IOMUXC_SetPinMux的0,1参数解释
  • Java集合框架解析
  • 【TS入门笔记1---初识TS】
  • A*迷宫寻路
  • 【频谱分析仪与信号分析仪】异同比较
  • 【力扣刷题|第五天作业】二分查找-寻找旋转排序数组中的最小值 II
  • Redis Bitmaps
  • 网络编程!
  • Android 16强制横竖屏设置
  • SQL进阶知识:七、数据库设计
  • 每日英语:每周背10句
  • PyQt6实例_pyqtgraph散点图显示工具_代码分享
  • AI大模型从0到1记录学习 数据结构和算法 day20
  • 分片算法详解:原理、类型与实现方案
  • 链表-两两交换链表中的结点
  • 接地电阻柜的主要材料有哪些?
  • 树莓派的系统烧录
  • 差分探头关键性能参数解析
  • 【盈达科技】GEO(生成式引擎优化)底层逻辑
  • 2025年3月电子学会青少年机器人技术(五级)等级考试试卷-实际操作-测评
  • el-menu箭头改为右下
  • 运算符重载 (Operator Overloading)
  • 雨晨 27842.1000 Windows 11 金丝雀 企业版 IE Edge 适度 2合1
  • 【多篇博客整理】 如何在linux虚拟环境中安装java + Daikon
  • 3D高斯个人笔记
  • 主流TTS(Text-to-Speech)服务提供商的详细对比
  • Java面向对象编程:深入理解继承
  • frome time import * 与 import time
  • 第14章:MCP服务端项目开发实战:多模态信息处理
  • 线程同步与互斥(互斥)