Maison >développement back-end >C++ >a un caractère égal à la somme des fréquences des autres caractères dans la chaîne donnée
Les chaînes C++ sont des flux de caractères alphanumériques. Les chaînes ont les propriétés suivantes -
Une chaîne se compose d'un ensemble fixe de caractères
La position de la chaîne commence à partir du 0ème index par défaut
La fréquence de tout caractère fait référence au nombre de fois où il apparaît dans une chaîne. La fréquence de n'importe quel caractère peut aller de 0 (s'il n'apparaît pas) à la longueur de la chaîne.
Dans cet article, nous allons développer un code qui prend une chaîne en entrée et vérifie si la fréquence d'un caractère est égale à la somme des fréquences de tous les autres caractères de la chaîne. Voyons l'exemple ci-dessous pour mieux comprendre ce sujet
Exemple 1 - str - "@!ab@!"
sortie - vrai
Par exemple, l'exemple de chaîne suivant contient également des caractères spéciaux, et la fréquence correspondante de chaque caractère est la suivante -
@=4
! = 2
a=1
b = 1
Par conséquent, la chaîne suivante a les propriétés applicables suivantes
Fréquence (@) = fréquence (!) + fréquence (a) + fréquence (b)
4 = 2 + 1 + 1
Dans cet article, nous allons créer une solution pour compter le nombre d'occurrences de chaque caractère dans une chaîne et vérifier en outre s'il existe un caractère avec le nombre de fréquences requis
str.length()
La méthode length() en C++ est utilisée pour compter le nombre de caractères dans une chaîne.
Accepter la chaîne d'entrée str
Créez un tableau contenant 26 lettres pour stocker la fréquence d'apparition des caractères. Il est initialisé avec le compte 0, spécifié par le tableau freq
Utilisez la méthode length() pour calculer la longueur de la chaîne, enregistrée sous le nom len
Si la longueur de la chaîne est un nombre impair, renvoie un faux drapeau
Extraire le personnage à la i-ème position à chaque fois
La fréquence d'apparition de ce caractère est augmentée de 1.
Après avoir calculé toute la longueur de la chaîne, vérifiez le tableau de fréquences
Si la fréquence d'un caractère est égale à la somme des fréquences des autres caractères, renvoie la valeur du drapeau booléen vraie.
L'extrait de code C++ suivant est utilisé pour vérifier si un caractère dans une chaîne d'entrée donnée apparaît avec une fréquence égale à la somme des fréquences de tous les caractères respectivement -
//including the required libraries #include <bits/stdc++.h> using namespace std; //function to check if the frequency of occurrence of data is equivalent to other characters' frequency bool charwithequalFreq(string str) { //storing the frequency of characters int freq[26] = { 0 }; //length of string int len = str.length(); //if the length of the string is odd if (len % 2 == 1) return false; // Update the frequencies of the characters for (int i = 0; i < len; i++){ char ch = str[i]; freq[ch - 'a']+=1; } for (int i = 0; i < 26; i++) if (freq[i] == len / 2) { cout<<"Holds true for character "<<(char)(i+'a') <<"\n"; return true; } //none of the cases hold true return false; } //calling the frequency method int main() { //input string string str = "tweeet"; cout<< "Input String : "<<str<<"\n"; //check the frquency bool res = charwithequalFreq(str); if(!res){ cout<<"There is no such character"; } return 0; }
Input String : tweeet Holds true for character e
Les positions des caractères dans les chaînes C++ commencent par défaut à partir du 0ème index. Une chaîne est une structure de stockage de longueur dynamique dans laquelle des caractères peuvent être ajoutés facilement un nombre illimité de fois. Chaque caractère d'une chaîne C++ est associé à un nombre, représenté par sa fréquence. Les structures de données de mappage sont utiles lorsque chaque clé est associée à une valeur définie.
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!