[LeetCode] 1002. Trouver des caractères communs

Trouvez des caractères couramment utilisés. Signification des questions est de donner un mot de gamme installé, une lettre de demande communs de ces mots à l'intérieur, la sortie sous forme de liste. Si plusieurs lettres identiques nécessite également plusieurs sorties. exemple,

Exemple 1:

Entrée: [ "bella", "label", "rouleau"] 
Rendement: [ "e", "l", "l"]

Exemple 2:

Entrée: [ "cool", "serrure", "cuire"] 
Sortie: [ "c", "o"]

L'idée est d'utiliser le numéro de l'entrée d'enregistrement des événements de la première lettre de chaque mot là-dedans, puis commencer à partir du deuxième mot, mais aussi pour calculer le nombre de fois que chaque lettre apparaît, mais mettre une lettre dans un mot apparaît dans le moins ajouté à l'ensemble de résultats. Par exemple, comme cool o qui apparaît deux fois, mais le verrou qui apparaît une seule fois o, o que lors de l'enregistrement de l'enregistrement du nombre d'occurrences du moins. Enfin, chaque mot qui traverse l'ensemble de résultats, la liste le nombre de fois à raccorder dans la sortie finale.

Temps O (n ^ 2)

Espace O (n)

1  classe Solution {
 2      publique Liste <String> commonChars (String [] A) {
 3          Liste <String> res = nouveau ArrayList <> ();
4          int [] Count = nouveau  int [26 ];
5          Arrays.fill (comptage, Integer.MAX_VALUE);
6          pour (String str: A) {
 7              int [] cnt = nouveau  int [26 ];
8              pour ( omble c: str.toCharArray ()) {
 9                  cnt [c - 'a'] ++ ;
dix             }
 11              pour ( int i = 0; i <26; i ++ ) {
 12                  comptage [i] = Math.min (comptage [i], cnt [i]);
13              }
 14          }
 15  
16          pour ( int i = 0; i <26; i ++ ) {
 17              tandis que (nombre [i]> 0 ) {
 18                  res.add ( "" + ( carbonisation ) (i + 'a' )) ;
19                  comptage [i] - ;
20              }
 21          }
 22          retour res;
23     }
 24 }

 

la mise en œuvre JavaScript

1  / * *
 2  * @param {string []} A
 3  * @return {string []}
 4   * / 
5  var commonChars = fonction (A) {
 6      laisser arrayList = [];
7      pour (laisser str A) {
 8          laisser arr = nouveau réseau (26) .Remplir (0 );
9          pour (soit i = 0; i <str.length; i ++ ) {
 10              arr [str [i] .charCodeAt () - « a'.charCodeAt ()] ++ ;
11          }
 12          arrayList.push (arr);
13      }
 14     laissez res = [];
15      pour (laisser i = 0; i <26; i ++ ) {
 16          let min = 100 ;
17          pour (soit j = 0; j <arrayList.length; j ++ ) {
 18              si (arrayList [j] [i] < min) {
 19                  min = arrayList [j] [i];
20              }
 21          }
 22          pour (soit k = 0; k <min; k ++ ) {
 23              res.push (String.fromCharCode (i + 'a' .charCodeAt ()));
24          }
 25      }
 26      retour res;
27 };

 

Je suppose que tu aimes

Origine www.cnblogs.com/aaronliu1991/p/12602889.html
conseillé
Classement