题目描述
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
【来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses】
栈
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
解法
首先创建一个字典,分别将小括号、中括号、大括号的左右括号分别设为value和key值,使它们具有对应关系。然后创建一个栈,遍历字符串,将左括号压入(push)栈中。如果遍历到右括号,则通过字典的映射关系判断该右括号对应的左括号是否与当前栈顶的左括号一致,若一致则删除栈顶与该右括号。若括号全为一致则为有效的括号,反之则为无效的括号。