También quiero cepillar los corchetes efectivos del botón de fuerza 05 (ctf se ha arrastrado durante unos días)

Incluye solo un hecho '(', ')', '{', '}', '[', ']'cadena, determina si la cadena es válida.
Una cadena válida debe cumplir:

  1. El paréntesis izquierdo debe cerrarse con el mismo tipo de paréntesis derecho.
  2. El paréntesis de apertura debe cerrarse en el orden correcto.
    Tenga en cuenta que una cadena vacía se puede considerar una cadena válida.
    Ejemplo 1:
    Entrada: “()”
    Salida: verdadero
    Ejemplo 2:
    Entrada: “() [] {}”
    Salida: verdadero
    Ejemplo 3:
    Entrada: “(]”
    Salida: falso
    Ejemplo 4:
    Entrada: “([)] "
    Salida: falso
    Ejemplo 5:
    Entrada:" {[]} "
    Salida: verdadero
public boolean isValid(String s) {
    
    
        Deque<Character> stack = new ArrayDeque<>();//一种数据结构
        for (int i = 0; i < s.length(); i++) {
    
    
            if (s.charAt(i) == '(' || s.charAt(i) == '{' || s.charAt(i) == '[') {
    
    
                stack.push(s.charAt(i));
            } else {
    
    
                if (stack.isEmpty()) {
    
    
                    return false;
                } else {
    
    
                    if (stack.peek() == '(' && s.charAt(i) != ')') {
    
    
                        return false;//返回栈顶元素
                    } else if (stack.peek() == '{' && s.charAt(i) != '}') {
    
    
                        return false;
                    } else if (stack.peek() == '[' && s.charAt(i) != ']') {
    
    
                        return false;
                    }
                    stack.pop();
                }
            }
        }
        return stack.isEmpty();
 }

Supongo que te gusta

Origin blog.csdn.net/qq_45864370/article/details/108702093
Recomendado
Clasificación