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

a un caractère égal à la somme des fréquences des autres caractères dans la chaîne donnée

WBOY
WBOYavant
2023-09-11 09:53:03567parcourir

a un caractère égal à la somme des fréquences des autres caractères dans la chaîne donnée

Présentation

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

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

Grammaire

str.length()

Longueur()

La méthode length() en C++ est utilisée pour compter le nombre de caractères dans une chaîne.

Algorithme

  • 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.

Exemple

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;
}

Sortie

Input String : tweeet
Holds true for character e

Conclusion

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer