[Una pregunta por día] Paréntesis efectivos

https://leetcode-cn.com/problems/valid-parentheses/

Dada una cadena que contiene solo '(', ')', '{', '}', '[', ']', determine si la cadena es válida.

Una cadena válida debe cumplir:

El soporte izquierdo debe cerrarse con el mismo tipo de soporte derecho.
El soporte izquierdo debe cerrarse en el orden correcto.
Tenga en cuenta que una cadena vacía puede considerarse una cadena válida.

Ejemplo:
Entrada: "()"
Salida: verdadero
Ejemplo 2:

Entrada: "() [] {}"
Salida: verdadero
Ejemplo 3:

Entrada: "(]"
Salida: falso
Ejemplo 4:

Entrada: "([]]"
Salida: falso

Entrada: "{[]}"
Salida: verdadero


Solución 1

60 ms 12 MB
comentarios de usuarios en el área de comentarios, versión de python.

class Solution:
    def isValid(self, s):
        while '{}' in s or '()' in s or '[]' in s:
            s = s.replace('{}', '')
            s = s.replace('[]', '')
            s = s.replace('()', '')
        return s == ''

Solución 2

4ms, 6.4mb

Usando la pila, cuando se encuentra un paréntesis izquierdo, se inserta un paréntesis derecho correspondiente en la pila. Si se encuentra el paréntesis derecho, el elemento superior de la pila! = El paréntesis derecho actual, o la pila actual está vacía (sin coincidencia) y devuelve falso.

class Solution {
public:
    bool isValid(string s) {
        if (s == "") {
            return true;
        }

        stack<char> st;
        for (int i = 0; i < s.size(); ++i) {
            switch(s[i]) {
                case '(':
                    st.push(')');
                    break;
                case '{':
                    st.push('}');
                    break;
                case '[':
                    st.push(']');
                    break;
                default:
                    if (st.empty() || s[i] != st.top()) {
                        return false;
                    } else {
                        st.pop();
                    }
            }
        }
        if (st.empty()) {
            return true;
        } else {
            return false;
        }
    }
};

EOF

Se han publicado 98 artículos originales · 91 alabanzas · Más de 40,000 visitas

Supongo que te gusta

Origin blog.csdn.net/Hanoi_ahoj/article/details/105315088
Recomendado
Clasificación