leetCode – 有效的括号
题目描述
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
测试用例
示例 1:
输入:s = "()[]{}"
输出:true
示例 2:
输入:s = "([)]"
输出:false
示例 3:
输入:s = "{[]}"
输出:true
题目分析
- 本题有两种比较好的解法
- 一种是利用栈的特点,但是基础差的同学可能不会用
- 第二中是比较简单的方法,如果是一对闭合括号就先用""取代
- 然后循环,如果最后是"",说明有效
解题方法
一.出栈入栈
解题思路
- 先判断参数是否为空,如果是空,返回true,否则进行下一步判断
- 通过取反操作来对比,把取反出传入的push 和 取反拿出pop()对比
解题代码
class Solution {
public boolean isValid(String s) {
//先判断字符串是否为空
if(s.isEmpty()) return true;
//创建一个栈
Stack<Character> stack = new