C'est un problème simple avec une description :
Vous recevez un tableau de chaînes de mots indexé 0 et un caractère x.
Renvoie un tableau d'indices représentant les mots qui contiennent le caractère x.
Notez que le tableau renvoyé peut être dans n'importe quel ordre.
Exemple 1 :
Saisie : mots = ["leet","code"], x = "e"
Sortie : [0,1]
Explication : « e » apparaît dans les deux mots : « leet » et « code ». Par conséquent, nous renvoyons les indices 0 et 1.Exemple 2 :
Saisie : mots = ["abc","bcd","aaaa","cbc"], x = "a"
Sortie : [0,2]
Explication : "a" apparaît dans "abc" et "aaaa". Par conséquent, nous renvoyons les indices 0 et 2.Exemple 3 :
Saisie : mots = ["abc","bcd","aaaa","cbc"], x = "z"
Sortie : []
Explication : « z » n'apparaît dans aucun des mots. Par conséquent, nous renvoyons un tableau vide.Contraintes :
1 <= mots.longueur <= 50
1 <= mots[i].length <= 50
x est une lettre anglaise minuscule.
les mots[i] se composent uniquement de lettres anglaises minuscules.
Pour résoudre ce problème, vous devrez parcourir la liste de mots, sur chaque mot, vérifiez s'il contient le caractère, si c'est le cas, vous stockez son index dans une liste de réponses :
class Solution { public List<Integer> findWordsContaining(String[] words, char x) { // create response final List<Integer> indexes = new ArrayList<>(); // iterate words string array for(int i=0;i<words.length;i++){ // check if char exists into the word if(words[i].indexOf(x) != -1){ indexes.add(i); // if yes add index into the response } } // return searched indexes return indexes; } } </p> <blockquote> <p>Durée d'exécution : 1 ms, plus rapide que 100,00 % des soumissions en ligne Java.</p> <p>Utilisation de la mémoire : 44,95 Mo, soit moins de 49,76 % des soumissions en ligne Java.</p> </blockquote> <p>—</p> <p>Si vous souhaitez adopter une approche lambda/fonction, qui est généralement plus propre mais pèse davantage sur les performances, cela ressemblerait à ceci :<br> </p> <pre class="brush:php;toolbar:false">class Solution { public List<Integer> findWordsContaining(String[] words, char x) { return IntStream.range(0, words.length) .boxed() // convert primitive into Class related (int -> Integer) .map(i -> getIndexIfCharExistsInWord(words[i], i, x)) .filter(Objects::nonNull) // to remove null ones from mapping .collect(Collectors.toList()); } public Integer getIndexIfCharExistsInWord(final String word, final int i, final char x) { return word.indexOf(x) != -1 ? i : null; } }
Durée d'exécution : 9 ms, plus rapide que 2,72 % des soumissions en ligne Java.
Utilisation de la mémoire : 44,90 Mo, soit moins de 66,32 % des soumissions en ligne Java.
—
C'est ça ! S'il y a autre chose à discuter, n'hésitez pas à laisser un commentaire, si j'ai raté quelque chose, faites-le-moi savoir afin que je puisse mettre à jour en conséquence.
À la prochaine publication ! :)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!