Maison > développement back-end > tutoriel php > Compter les paires de préfixes et de suffixes I

Compter les paires de préfixes et de suffixes I

Barbara Streisand
Libérer: 2025-01-09 06:08:43
original
731 Les gens l'ont consulté

Count Prefix and Suffix Pairs I

3042. Compter les paires de préfixes et de suffixes I

Difficulté :Facile

Sujets :Array, String, Trie, Rolling Hash, String Matching, Hash Function

Vous recevez un tableau de chaînes de mots indexé à 0.

Définissons une fonction booléenne isPrefixAndSuffix qui prend deux chaînes, str1 et str2 :

  • isPrefixAndSuffix(str1, str2) renvoie true si str1 est à la fois un préfixe1 et un suffixe2 de str2, et false sinon.

Par exemple, isPrefixAndSuffix("aba", "ababa") est vrai car "aba" est un préfixe de "ababa" et aussi un suffixe, mais isPrefixAndSuffix("abc", "abcd") est faux.

Renvoie un entier désignant le nombre de paires d'index (i, j) tel que i < j, et isPrefixAndSuffix(words[i],words[j]) est vrai.

Exemple 1 :

  • Saisie : mots = ["a","aba","ababa","aa"]
  • Sortie : 4
  • Explication : Dans cet exemple, les paires d'index comptées sont : i = 0 et j = 1 car isPrefixAndSuffix("a", "aba") est vrai. i = 0 et j = 2 car isPrefixAndSuffix("a", "ababa") est vrai. i = 0 et j = 3 car isPrefixAndSuffix("a", "aa") est vrai. i = 1 et j = 2 car isPrefixAndSuffix("aba", "ababa") est vrai. Par conséquent, la réponse est 4.

Exemple 2 :

  • Saisie : mots = ["pa","papa","ma","mama"]
  • Sortie : 2
  • Explication : Dans cet exemple, les paires d'index comptées sont : i = 0 et j = 1 car isPrefixAndSuffix("pa", "papa") est vrai. i = 2 et j = 3 car isPrefixAndSuffix("ma", "mama") est vrai. Par conséquent, la réponse est 2.

Exemple 3 :

  • Saisie : mots = ["abab","ab"]
  • Sortie : 0
  • Explication : Dans cet exemple, la seule paire d'index valide est i = 0 et j = 1, et isPrefixAndSuffix("abab", "ab") est faux. Par conséquent, la réponse est 0.

Contraintes :

  • 1 <= mots.longueur <= 50
  • 1 <= mots[i].length <= 10
  • les mots [i] se composent uniquement de lettres anglaises minuscules.

Indice :

  1. Parcourir toutes les paires d'index (i, j), de telle sorte que i < j, et vérifiez isPrefixAndSuffix(words[i],words[j]).
  2. La réponse est le nombre total de paires où isPrefixAndSuffix(words[i],words[j]) == true.

Solution :

Nous devons parcourir toutes les paires d'index (i, j) où i < j et vérifiez si la chaîne mots[i] est à la fois un préfixe et un suffixe de mots[j]. Pour chaque paire, nous pouvons utiliser les fonctions intégrées de PHP substr() pour vérifier les préfixes et suffixes.

Implémentons cette solution en PHP : 3042. Compter les paires de préfixes et de suffixes I






Explication:

  1. countPrefixAndSuffixPairs ($words):

    • Cette fonction parcourt toutes les paires d'index possibles (i, j) telles que i < j.
    • Il appelle isPrefixAndSuffix() pour vérifier si les mots[i] sont à la fois un préfixe et un suffixe de mots[j].
    • Si la condition est vraie, cela incrémente le décompte.
  2. isPrefixAndSuffix($str1, $str2):

    • Cette fonction d'assistance vérifie si str1 est à la fois un préfixe et un suffixe de str2.
    • Il utilise substr() pour extraire le préfixe et le suffixe de str2 et les compare avec str1.
    • Si les deux conditions sont vraies, cela renvoie vrai, sinon, cela renvoie faux.

Complexité temporelle :

  • La complexité temporelle est O(n2 x m), où n est la longueur du tableau de mots et m est la longueur moyenne du chaînes dans le tableau. Cela est dû aux boucles imbriquées et aux opérations substr().

Exemple de sortie :

Pour les tableaux d'entrée donnés :

  • ["a", "aba", "ababa", "aa"] -> Sortie : 4
  • ["pa", "papa", "ma", "maman"] -> Sortie : 2
  • ["abab", "ab"] -> Sortie : 0

Cette solution devrait fonctionner efficacement dans les limites données.

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

  1. Préfixe Un préfixe d'une chaîne est une sous-chaîne qui commence au début de la chaîne et s'étend jusqu'à n'importe quel point de celle-ci. ↩

  2. Suffixe Un suffixe d'une chaîne est une sous-chaîne qui commence à n'importe quel point de la chaîne et s'étend jusqu'à sa fin. ↩

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:dev.to
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