Détecteur de motifs
Fait partie de la section Fondamentaux du Journey R de Coddy — leçon 77 sur 78.
Défi
FacileCréez une fonction appelée count_pattern qui prend deux arguments : text et pattern. La fonction doit retourner le nombre de fois que le motif apparaît dans le texte, y compris les occurrences chevauchantes.
Vous recevrez deux lignes d'entrée :
- La chaîne de texte dans laquelle effectuer la recherche
- La chaîne de motif à rechercher
Appelez votre fonction avec les entrées fournies et affichez le résultat.
Conseils :
- Utilisez
nchar()pour obtenir la longueur des chaînes - Utilisez
substr(text, start, stop)pour extraire des sous-chaînes - Parcourez chaque position de départ valide et vérifiez si la sous-chaîne correspond au motif
Par exemple, si l'entrée est :
ababa
abaLa sortie devrait être :
2Explication : Le motif "aba" apparaît à la position 1 (ababa) et à la position 3 (ababa), donc le compte est 2.
Si l'entrée est :
mississippi
issiLa sortie devrait être :
2Essayez vous-même
# Lire l'entrée
con <- file("stdin", "r")
text <- suppressWarnings(readLines(con, n = 1))
pattern <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO : Créer une fonction appelée count_pattern qui prend text et pattern
# et retourne le nombre d'occurrences chevauchantes de pattern dans text
# Appeler la fonction et afficher le résultat
print(count_pattern(text, pattern))Toutes les leçons de Fondamentaux
4Opérateurs - Partie 2
Opérateurs logiques (AND, OR)Opérateurs logiques - Partie 2 (NOT)Récapitulatif - Logique simpleLogique vectorisée - Partie 1Logique vectorisée - Partie 27Calculateur de partage d'addition
Message de bienvenueRécupérer la saisie utilisateur10FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz2Variables et types de données
Type de données numériqueType de données entierType de données caractèreType de données logiqueVérification des types de donnéesConventions de nommageValeurs manquantes : NARécapitulatif - Création de variables8Boucles
Boucle ForBoucle WhileBreakSuivant (Continue)Récapitulatif - FactorielleGénération de séquences (seq, :)Boucles imbriquéesRécapitulatif - Saisie dynamique3Opérateurs, partie 1
Opérateurs arithmétiquesDivision entière et moduloOpérateurs d'affectationRécapitulatif - Mathématiques simplesOpérateurs de comparaison6Entrées/Sorties de base
Affichage avec PrintCat pour l'affichageAffichage avec des variablesLire l'entrée avec readline()Bases de la conversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Fonctions
Déclarer une fonctionArguments de fonctionValeurs de retourRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs de paramètres par défaut