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

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;
}

[ 官方题解 ]:

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

相关文章:

  • python自动化学习六:断言
  • 基于Java+MySQL 实现(Web)日程管理系统
  • 开发了一个b站视频音频提取器
  • Spring Security结构总览
  • 【MySQL】基本查询
  • Android 16强制横竖屏设置
  • 【oql】spark thriftserver内存溢出,使用oql查询导致oom的sql
  • c语言 write函数
  • 3、ArkTS语言介绍
  • 动态规划dp专题-(下)
  • Unreal Niagara制作SubUV贴图翻页动画
  • CVE-2025-32102 | Ubuntu 下复现 CrushFTP telnetSocket接口SSRF
  • 360安全卫士安卓版手机加速与骚扰拦截功能测评
  • netty中的Channel与Java NIO中的Channel核心对比
  • 数据库MySQL学习——day3(主键与外键约束)
  • 开源世界模型AETHER实战:3D决策网络的突破与填坑指南——从GitHub 2400星到产线翻车,开发者如何驾驭这场认知革命?
  • maven构建时报错:was cached in the local repository...
  • size() in vector C++
  • Mysql主从复制和读写分离
  • Linux下载与安装——笔记
  • 财政部部长:中方主张通过平等对话协商解决贸易和关税争议
  • 全球84%的珊瑚礁已遭受白化事件影响
  • 北京市平谷区政协原主席王春辉接受纪律审查和监察调查
  • 商务部:美方应彻底取消所有对华单边关税措施
  • 上海市闵行区原二级巡视员琚汉铮接受纪律审查和监察调查
  • 世界最大全电驱可拆装环保绞吸船投入官厅水库清淤试点工程