[] LeetCode 1002. buscar caracteres comunes

Encuentra los caracteres más usados. Significado de las preguntas es dar una palabra de array instalado, unas cartas de solicitud comunes de estas palabras en el interior, la producción en forma de lista. Si hay varias cartas idénticas también requiere múltiples salidas. Ejemplo,

Ejemplo 1:

Entrada: [ "bella", "etiqueta", "rodillo"]
Salida: [ "e", "l", "l"]

Ejemplo 2:

Entrada: [ "enfriar", "bloqueo", "cocinar"]
Salida: [ "c", "o"]

La idea es utilizar el número de ocurrencias HashMap entrada de grabación de la primera letra de cada palabra de allí, y luego comenzar a partir de la segunda palabra, sino también para calcular el número de veces que cada letra aparece, pero poner una letra en una palabra aparecerá en lo más mínimo añadido al conjunto de resultados. Por ejemplo, tal como o fresco que aparece dos veces, pero la cerradura que sólo aparece una vez o, o sólo cuando la grabación de la grabación del número de ocurrencias de la menos. Finalmente, cada palabra que atraviesan el conjunto de resultados, la lista el número de veces a ser empalmada en la salida final.

Tiempo O (n ^ 2)

Espacio O (n)

1  clase Solution {
 2      pública Lista <cadena> commonChars (String [] A) {
 3          List <String> res = nuevo ArrayList <> ();
4          int [] Count = nuevo  int [26 ];
5          Arrays.fill (recuento, Integer.MAX_VALUE);
6          para (String str: A) {
 7              int [] cnt = nuevo  int [26 ];
8              para ( Char c: str.toCharArray ()) {
 9                  cnt [c - 'a'] ++ ;
10             }
 11              para ( int i = 0; i <26; i ++ ) {
 12                  recuento de [i] = Math.min (recuento de [i], cnt [i]);
13              }
 14          }
 15  
16          para ( int i = 0; i <26; i ++ ) {
 17              mientras (recuento de [i]> 0 ) {
 18                  res.add ( "" + ( Char ) (i + 'a' )) ;
19                  recuento de [i] - ;
20              }
 21          }
 22          de retorno res;
23     }
 24 }

 

implementación de JavaScript

1  / * *
 2  * @param {string []} A
 3  * @return {string []}
 4   * / 
5  var commonChars = función (A) {
 6      dejar arrayList = [];
7      para (dejar str de A) {
 8          permiten arr = nuevo Array (26) .Rellenar (0 );
9          para (dejo i = 0; i <str.length; i ++ ) {
 10              arr [str [i] .charCodeAt () - 'a'.charCodeAt ()] ++ ;
11          }
 12          arrayList.push (arr);
13      }
 14     dejar res = [];
15      para (dejar que i = 0; i <26; i ++ ) {
 16          let min = 100 ;
17          para (dejar que j = 0; j <arrayList.length; j ++ ) {
 18              si (arrayList [j] [i] < min) {
 19                  min = arrayList [j] [i];
20              }
 21          }
 22          para (dejar que k = 0; k <min; k ++ ) {
 23              res.push (String.fromCharCode (i + 'a' .charCodeAt ()));
24          }
 25      }
 26      de retorno res;
27 };

 

Supongo que te gusta

Origin www.cnblogs.com/aaronliu1991/p/12602889.html
Recomendado
Clasificación