Le but de cet article est d'implémenter un programme pour décoder une chaîne donnée en supprimant les caractères récurrents.
Comme vous savez ce qu'est une chaîne, une chaîne n'est rien d'autre qu'une collection de caractères. De plus, il n’y a aucune limite au nombre de fois que les caractères peuvent être répétés dans une chaîne. Le même caractère peut apparaître plusieurs fois dans une chaîne. Dans cet article, nous trouverons un moyen de décoder une chaîne codée donnée str en supprimant les occurrences en double.
L'objectif est de décoder la chaîne str fournie, qui a été traitée avec une occurrence de « a », deux occurrences de « b », trois occurrences de « c » et quatre occurrences de « d », jusqu'à 26 occurrences de codage « z ».
Un programme pour décoder une chaîne donnée en supprimant les occurrences en double.
REMARQUE − N'ignorez pas les espaces qui peuvent être inclus dans la lettre.
Let us take the input string str = “abbbb accc”
The output obtained is: abb ac
Chaque lettre est écrite en fonction du nombre de fois où elle apparaît dans l'alphabet anglais. La chaîne résultante est "abb acc" car la lettre b est répétée quatre fois. La lettre a est répétée deux fois, et enfin la lettre c est répétée trois fois.
Dans ce cas également, les espaces ne sont pas ignorés.
Let us take the input string str = “ddddadddd”
The output obtained is: dad
Chaque lettre est écrite en fonction du nombre de fois où elle apparaît dans l'alphabet anglais. La chaîne résultante est "papa" car la lettre d est répétée huit fois et la lettre a n'apparaît qu'une seule fois.
Dans ce cas, il n'y a pas d'espaces entre les caractères.
Let us take the input string str = “abbccc”
The output obtained is: abc
Chaque lettre est écrite en tenant compte du nombre de fois où elle apparaît dans l'alphabet anglais. La chaîne résultante est "abc" car la lettre a n'apparaît qu'une seule fois. La lettre b est répétée deux fois et enfin la lettre c est répétée trois fois.
Dans ce cas, il n'y a pas d'espaces entre les caractères.
Pour décoder une chaîne donnée en supprimant les caractères répétés, nous adoptons la méthode suivante dans cet article.
La méthode pour résoudre ce problème et décoder une chaîne donnée en supprimant les occurrences en double est basée sur l'itération de la chaîne.
C'est-à-dire que le problème ci-dessus peut être résolu en itérant la chaîne str et en poussant chaque caractère dans la chaîne de sortie, puis en avançant de cette position pour trouver le caractère suivant.
Vous trouverez ci-dessous l'algorithme permettant d'imprimer le nombre de caractères camelCase présents dans une chaîne donnée
Afin de résoudre ce problème, veuillez suivre les instructions ci-dessous -
Première étape − Démarrer
Étape 2 - Définir la chaîne
Étape 3 - Créez une variable appelée résultat avec une valeur initiale d'une chaîne vide pour stocker la chaîne de sortie.
Étape 4 - Créez la fonction findOccurences(char a1) et effectuez les opérations suivantes -
Étape 5 - Si la valeur de a1 est comprise entre a et z, renvoyez la valeur de a1 sous la forme "a". Si la plage de valeurs de a1 n’est pas comprise entre A et Z, alors la valeur de a1 est renvoyée sous la forme « Z ». Sinon, 0 est renvoyé.
Étape 6 - Définissez la fonction decodeTheString(string s) pour décoder la chaîne s
Étape 7 - Après avoir terminé les étapes ci-dessus, imprimez le résultat de la chaîne comme chaîne finale.
Étape 8 − Arrêtez
Il s'agit d'un programme C++ implémentant l'algorithme écrit ci-dessus pour décoder une chaîne donnée en supprimant les caractères récurrents
// C++ program for our above algorithm #include <bits/stdc++.h> using namespace std; // Function to count the number of occurences of each character int findOccurences(char a1){ // If the character is a lower case , that is [a-z] if (a1 <= 'z' && a1 >= 'a') { return a1 - 'a'; } // If the character is an uppercase, that is [A-Z] else if (a1 <= 'Z' && a1 >= 'A') { return a1 - 'A'; } // If the character is something else like a punctuation mark then return 0; } // Function used for decoding the given string str void decodeTheString(string s){ string result = ""; // Iterate through the provided string str for (int i = 0; i < s.length(); i++) { result.push_back(s[i]); // Find the index i of the next characterto be printed i += findOccurences(s[i]); } cout << "The decoded string: " << result << endl; } int main(){ string s = "aaabbbb"; cout << "Input string: "<< s << endl; decodeTheString(s); return 0; }
Input string: aaabbbb The decoded string: aaabb
De même, nous pouvons décoder n'importe quelle chaîne donnée en supprimant les occurrences en double de celle-ci.
Cet article résout le défi du décodage d'une chaîne donnée en supprimant ses occurrences en double. Voici le code de programmation C++ ainsi que l'algorithme permettant de décoder une chaîne donnée en supprimant les occurrences en double de celle-ci.
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!