Paréntesis válidos.

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

Las cadenas válidas deben satisfacer:

Los paréntesis de apertura deben cerrarse con paréntesis de cierre del mismo tipo.
Los paréntesis izquierdos deben cerrarse en el orden correcto

Ideas:

1. Determine la longitud de la cadena y devuelva falso directamente para números impares

2. Recorra la cadena y use el mapa para determinar si es un paréntesis izquierdo o un paréntesis derecho,

3. Empuje el paréntesis izquierdo en una matriz stk

4. Si es un corchete derecho, use el mapa para encontrar el número de la izquierda y haga un juicio de congruencia con el último elemento de la matriz stk

5. Si no es igual para devolver falso, si es igual, significa que el emparejamiento actual es exitoso, luego elimine el último elemento en la matriz stk y compárelo a su vez

6. Finalmente, devuelva la longitud de la matriz stk.Si la longitud de la matriz stk existe, significa que el emparejamiento es exitoso y devuelve fasle, de lo contrario devuelve verdadero

var isValid = function (s) {
    const m = new Map([
        [')', '('],
        ['}', '{'],
        [']', '[']
    ])
    const leftArr = []

    for (const item of s) {
        if (m.has(item)) {
            // 右侧
            if (!leftArr.length || m.get(item) !== leftArr[leftArr.length - 1]) {
                return false
            }
            leftArr.pop()

        } else {
            // 左侧
            leftArr.push(item)
        }
    }
    return !leftArr.length
};

Supongo que te gusta

Origin blog.csdn.net/m0_56274171/article/details/124017514
Recomendado
Clasificación