leetcode :. 763 cartas dividen el intervalo

763. La división de la sección de cartas

S cadena en minúsculas letras. Ponemos esta cadena se divide en tantos fragmentos, la misma letra aparecerá en un segmento de ellos. Se devuelve una lista de la longitud de cada representación segmento de cuerda.

Ejemplo 1:

Entrada: S = "ababcbacadefegdehijhklij"
Salida: [9,7,8]

explicación:

Divida el resultado es "ababcbaca", "defegde", "hijhklij".
Cada letra aparece en un segmento hacia arriba.
Al igual que "ababcbacadefegde", "hijhklij" división está mal, porque un menor número de segmentos divididos.

nota:

Longitud S entre [1, 500].
S contiene sólo letras en minúscula 'a' a la 'z'.

Método 1: Usar cadena de la función find_last_of (), después de que el ex gerente de nuevo para actualizar constantemente el valor de la orilla derecha.

{Class Solución 
público: 
    Vector <int> partitionLabels (String S) { 
        Vector <int> V; 
       int izquierda = -1; 
       int derecha = 0; 
       for (int i = 0; I <s.size (); i ++) { 
           int index = S.find_last_of (S [i ]); // índice del último nodo de la cadena que aparece 
           si (índice> derecha) derecha = índice; // actualización límite derecho 
           si (i == derecha) {/ / Si llega al borde derecho 
               v.push_back (izquierda-derecha); 
               izquierda = derecha; 
           } 
       } 
        retorno V; 
    } 
};

  

Supongo que te gusta

Origin www.cnblogs.com/52dxer/p/12527412.html
Recomendado
Clasificación