有效的括号
题目链接https://leetcode.cn/problems/valid-parentheses/视频讲解https://www.bilibili.com/video/BV1AF411w78g一、思路想法这道题是经典的栈应用问题核心逻辑是 “后进先出”1、遇到左括号(、{、[时将其对应的右括号压入栈中方便后续匹配。2、遇到右括号时检查栈是否为空或栈顶元素是否与当前右括号一致若栈为空说明没有对应的左括号直接返回false若栈顶元素不匹配说明顺序或类型错误返回false若匹配则弹出栈顶元素继续遍历。3、遍历结束后若栈为空说明所有括号都正确闭合返回true否则返回false。二、代码三、重难点总结1、栈的选择与匹配逻辑必须用栈来维护括号的闭合顺序核心是 “左括号对应右括号入栈右括号匹配栈顶”。2、边界条件处理字符串长度为奇数时直接返回false遇到右括号时栈为空说明无对应左括号遍历结束后栈不为空说明有未闭合的左括号。3、内存管理手动实现栈时需要注意动态内存分配与释放避免内存泄漏。四、心得体会代码实现中边界条件的判断非常关键比如奇数长度、空栈匹配等这些细节直接影响代码的正确性。我在写代码的时候踩了不少坑比如一开始忘记处理字符串长度为奇数的情况导致多跑了很多无用循环还有遇到右括号时没先判断栈是否为空直接取栈顶导致越界。这些小错误让我明白算法题里边界条件和核心逻辑一样重要哪怕思路对了细节没考虑到也会全盘出错。