LeetCode020有效的括号之栈

题目描述

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

【来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/valid-parentheses】


栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

解法

首先创建一个字典,分别将小括号、中括号、大括号的左右括号分别设为value和key值,使它们具有对应关系。然后创建一个栈,遍历字符串,将左括号压入(push)栈中。如果遍历到右括号,则通过字典的映射关系判断该右括号对应的左括号是否与当前栈顶的左括号一致,若一致则删除栈顶与该右括号。若括号全为一致则为有效的括号,反之则为无效的括号。

源代码


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容