Maison >développement back-end >tutoriel php >Vérifiez si un mot apparaît comme préfixe d'un mot dans une phrase

Vérifiez si un mot apparaît comme préfixe d'un mot dans une phrase

Patricia Arquette
Patricia Arquetteoriginal
2024-12-17 01:35:25224parcourir

Check If a Word Occurs As a Prefix of Any Word in a Sentence

1455. Vérifiez si un mot apparaît comme préfixe d'un mot dans une phrase

Difficulté :Facile

Sujets : Deux pointeurs, chaîne, correspondance de chaînes

Étant donné une phrase composée de quelques mots séparés par un espace unique et un mot de recherche, vérifiez si le mot de recherche est un préfixe d'un mot dans la phrase.

Renvoie l'index du mot dans la phrase (1-indexé) où searchWord est un préfixe de ce mot. Si searchWord est un préfixe de plusieurs mots, renvoie l'index du premier mot (index minimum). S'il n'y a pas de tel mot, retournez -1.

Un préfixe d'une chaîne s est toute sous-chaîne contiguë de tête de s.

Exemple 1 :

  • Entrée :phrase = "j'adore manger des hamburgers", searchWord = "burg"
  • Sortie : 4
  • Explication : "burg" est le préfixe de "burger" qui est le 4ème mot de la phrase.

Exemple 2 :

  • Entrée :phrase = "ce problème est un problème facile", searchWord = "pro"
  • Sortie : 2
  • Explication : "pro" est le préfixe de "problème" qui est le 2ème et le 6ème mot de la phrase, mais on renvoie 2 car c'est l'index minimal.

Exemple 3 :

  • Entrée : phrase = "je suis fatigué", searchWord = "vous"
  • Sortie : -1
  • Explication : "vous" n'est le préfixe d'aucun mot dans la phrase.

Contraintes :

  • 1 <= phrase.length <= 100
  • 1 <= searchWord.length <= 10
  • La phrase se compose de lettres anglaises minuscules et d'espaces.
  • searchWord se compose de lettres anglaises minuscules.

Indice :

  1. Extrayez d’abord les mots de la phrase.
  2. Vérifiez pour chaque mot si searchWord apparaît à l'index 0, si c'est le cas, renvoyez l'index de ce mot (indexé 1)
  3. Si searchWord n'existe pas en tant que préfixe d'un mot, renvoyez la valeur par défaut (-1).

Solution :

Nous pouvons décomposer la tâche selon les étapes suivantes :

  1. Divisez la phrase en mots individuels.
  2. Parcourez les mots et vérifiez si le searchWord est un préfixe de chaque mot.
  3. Si un mot commence par searchWord, renvoie la position indexée 1 du mot.
  4. Si aucun mot ne correspond, renvoie -1.

Implémentons cette solution en PHP : 1455. Vérifiez si un mot apparaît comme préfixe d'un mot dans une phrase






Explication:

  1. Diviser la phrase en mots :

    Nous utilisons éclater(" ", $sentence) pour diviser la phrase en un tableau de mots.

  2. Itérer sur les mots :

    Utilisez une boucle foreach pour parcourir chaque mot de la phrase. La variable $index garde une trace de la position du mot (indexé 0).

  3. Vérification du préfixe :

    Utilisez strpos($word, $searchWord) === 0 pour vérifier si le searchWord apparaît au début du mot actuel.

  4. Renvoi du résultat :

    Si une correspondance est trouvée, renvoyez l'index de base 1 du mot en ajoutant 1 à $index. Si aucune correspondance n'est trouvée après la boucle, renvoyez -1.

Exemples de sorties :

  • Pour la phrase d'entrée = "j'aime manger un hamburger" et searchWord = "burg", la sortie est 4 car "burger" est le 4ème mot.
  • Pour la phrase d'entrée = "ce problème est un problème facile" et searchWord = "pro", la sortie est 2 car "problème" est le 2ème mot.
  • Pour la phrase d'entrée = "je suis fatigué" et searchWord = "vous", la sortie est -1 car aucun mot ne commence par "vous".

Complexité temporelle :

  • Le fractionnement de la phrase en mots prend O(n), où n est la longueur de la phrase.
  • La vérification de chaque mot pour un préfixe prend O(m), où m est la longueur du mot recherché.
  • Ainsi, la complexité temporelle globale est O(n * m), ce qui est efficace pour les contraintes de taille d'entrée.

Cette solution satisfait aux contraintes et est efficace pour la taille d'entrée donnée.

Liens de contact

Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !

Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :

  • LinkedIn
  • GitHub

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!

Déclaration:
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