39. LeetCode palabra de compresión de codificación

título Descripción

Dada una lista de palabras, esta lista se codifica como un índice de la cadena S y una lista de índice A.

Por ejemplo, si la lista es [ "tiempo", "yo", "campana"], que puede expresarse como S = "tiempo de campana # #" y los índices = [0, 2, 5].

Para cada índice, podemos empezar por la lectura del índice de la cadena de la cadena S en la posición hasta el final "#", para restaurar nuestra lista previa de las palabras.

A continuación, la longitud mínima de la cadena para el éxito de una lista de palabras dada para la codificación es ¿cuánto?

 

Ejemplo:

Entrada: palabras = [ "tiempo", "yo", "campana"]
de salida: 10
Descripción: S = "tiempo de campana # # ", los índices = [0, 2, 5].
 

consejos:

. 1 <= words.length <= 2,000
. 1 <= palabras [I] .length <=. 7
cada palabra en minúsculas.

Ideas de resolución de problemas

La longitud de cada palabra de acuerdo con el orden descendente,

Luego atravesar toda la matriz encuentros una palabra palabra, StringBuilder juez no existe la palabra # este campo, si no, puede añadir este campo StringBuilder

De nuevo a la longitud StringBuilder

Código es el siguiente

empaquetar leetcode; 

importación java.util.Arrays; 

público  de clase MinimumLengthEncoding {
       pública  int minimumLengthEncoding (String [] {palabras) 
        
          Arrays.sort (palabras, word1 (String, String palabra2) -> word2.length () - word1.length ()); 
          StringBuilder sb = nuevo StringBuilder (); 
          sb.append (palabras [ 0] + "#" );
          para ( int i = 0; i <words.length; i ++ ) {
             si (sb.indexOf (palabras [i] + "#") == - 1 ) { 
                sb.append (palabras [i] + "#"  ) ;
            } 
        } 
          Retorno sb.length (); 

        } 
}

 

Supongo que te gusta

Origin www.cnblogs.com/Transkai/p/12586745.html
Recomendado
Clasificación