LeetCode之有效括号匹配

题目描述:

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。(注意空字符串可被认为是有效字符串)

输入:"()"     输出:true

输入:"(])"     输出:false

括号匹配是一个很明显的使用栈解决的问题

import java.util.Stack;

class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for(int i = 0; i < s.length(); i ++){
            char c = s.charAt(i);
            if(c=='(' || c=='[' || c=='{')
                stack.push(c);
            else{
                if(stack.isEmpty())
                    return false;
                
                char topChar = stack.pop();
                if(c==')' && topChar !='(')
                    return false;
                if(c==']' && topChar !='[')
                    return false;
                if(c=='}' && topChar !='{')
                    return false;
            }
        }

        return stack.isEmpty();
发布了80 篇原创文章 · 获赞 184 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/hesongzefairy/article/details/104474571