Maison > développement back-end > tutoriel php > Compter les mots avec un préfixe donné

Compter les mots avec un préfixe donné

Susan Sarandon
Libérer: 2025-01-09 18:03:42
original
615 Les gens l'ont consulté
<code class="language-php"><?php
/**
 * @param String[] $words
 * @param String $pref
 * @return Integer
 */
function countWordsWithPrefix($words, $pref) {
    $count = 0;
    foreach ($words as $word) {
        if (strpos($word, $pref) === 0) {
            $count++;
        }
    }
    return $count;
}

// Example Usage
$words1 = ["pay", "attention", "practice", "attend"];
$pref1 = "at";
echo countWordsWithPrefix($words1, $pref1); // Output: 2

$words2 = ["leetcode", "win", "loops", "success"];
$pref2 = "code";
echo countWordsWithPrefix($words2, $pref2); // Output: 0
?></code>
Copier après la connexion

Counting Words With a Given Prefix

  1. Compter les mots avec un préfixe donné

Difficulté :Facile

Sujets : Tableau, chaîne, correspondance de chaînes

Étant donné un tableau de chaînes words et une chaîne pref, renvoie le nombre de chaînes dans words qui contiennent pref comme préfixe.

Un préfixe d'une chaîne s est n'importe quelle sous-chaîne contiguë de s.

Exemple 1 :

  • Entrée : words = ["payer", "attention", "pratiquer", "assister"], pref = "à"
  • Sortie :2
  • Explication : Les 2 chaînes qui contiennent "at" comme préfixe sont : "attention" et "attend".

Exemple 2 :

  • Entrée : words = ["leetcode","win","loops","success"], pref = "code"
  • Sortie :0
  • Explication : Aucune chaîne ne contient « code » comme préfixe.

Contraintes :

  • 1 <= mots.longueur <= 100
  • 1 <= mots[i].length <= 20
  • 1 <= longueur préf. <= 20
  • les mots [i] et pref sont constitués de lettres anglaises minuscules.

Solution améliorée (en utilisant strpos) :

La solution fournie utilise substr qui est moins efficace que strpos pour cette tâche spécifique. strpos vérifie directement le préfixe au début de la chaîne, évitant ainsi la création inutile de sous-chaînes.

Cette solution PHP améliorée utilise strpos :

<?php
function countWordsWithPrefix(array $words, string $pref): int {
    $count = 0;
    foreach ($words as $word) {
        if (strpos($word, $pref) === 0) { // Check if pref is at the beginning (index 0)
            $count++;
        }
    }
    return $count;
}
?>
<p><strong>Complexité temporelle :</strong> O(n*m) dans le pire des cas, où n est le nombre de mots et m est la longueur du préfixe.  Cependant, en moyenne, ce sera plus rapide que la <code>substr solution originale.

Complexité de l'espace : O(1) - Un espace supplémentaire constant est utilisé.

Cette réponse révisée fournit une solution plus efficace et maintient la clarté de l'explication. L'image reste inchangée car elle est pertinente par rapport à l'énoncé du problème.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal