52.括号序列

题目描述

给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列
括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。

示例1

输入

"["

返回值

false

示例2

输入

"[]"

返回值

true
代码实现
import java.util.*;


public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        char[] arr = s.toCharArray();
        Stack<Character> stack = new Stack<>();
        for (char a : arr) {
            if (a == '(' || a == '{' || a == '[') {
                stack.push(a);
            } else {
                if (stack.empty()) {
                    return false;
                }
                if ((stack.peek() == '(' && a == ')') ||
                    (stack.peek() == '{' && a == '}') ||
                    (stack.peek() == '[' && a == ']')) {
                    stack.pop();
                }
            }
        }
        if (stack.empty()) {
            return true;
        } else {
            return false;
        }
    }
}

 

猜你喜欢

转载自blog.csdn.net/xiao__jia__jia/article/details/113532166
今日推荐