longgestValidParentheses: el paréntesis válido más largo.

Título:

Dada una cadena que contenga solo '(' y ')', encuentre la longitud de la subcadena más larga que contenga paréntesis válidos.

Ejemplo 1:

Entrada: "(()"
Salida: 2
Explicación: La subcadena de corchetes válida más larga es "()"

Ejemplo 2:

Entrada: “) () ())”
Salida: 4
Explicación: La subcadena de corchetes válida más larga es “() ()”

Temas relacionados programación dinámica de cadenas

Ideas para resolver problemas

1. Configure una matriz, que almacena el valor máximo de la posición correspondiente () de cada carácter en la
cadena 2. Determine el valor máximo de la posición actual de la cadena, principalmente dependiendo de dos situaciones
2.1 Una que termina con ()
depende de la situación actual Las dos primeras posiciones de la posición, el estado del personaje. Acumular 2 para ser
2.2 Un tipo que termina en)), pero puede formar (((()))) este tipo de cadena. En
este caso, el estado de acumular el penúltimo), y conforme a ((((( )))) La transición de () antes de la cadena se puede acumular sobre la base de 2.1.

Código:

class Solution {
    public int longestValidParentheses(String s) {
           int res=0;

           //用来记录字符串中每个字符对应位置()的最大值
           int[] dp=new int[s.length()];
        for (int i = 1; i < s.length(); i++) {
            if(s.charAt(i)==')')
            {
                //步骤2.1()结尾的
                if(s.charAt(i-1)=='(')
                    dp[i]=  (i>=2 ? dp[i-2] : 0) +2;
                //以))结尾的,需要找到对应的(,以及判断之前是否有)并判断状态数值大小
                else if(i-dp[i-1]-1>=0&&s.charAt(i-dp[i-1]-1)=='(')
                    dp[i]=dp[i-1]+( i-dp[i-1]-2>=0 ? dp[i-dp[i-1]-2] : 0)+2;
                res=Math.max(res,dp[i]);
            }
        }
        return res;
    }
}

efecto

La
respuesta de información fue exitosa:
tiempo de ejecución: 2 ms, derrotando al 74,72% de los usuarios de Java
Consumo de memoria: 38,3 MB, derrotando al 83,68% de los usuarios de Java

Supongo que te gusta

Origin blog.csdn.net/tangshuai96/article/details/111401613
Recomendado
Clasificación