Heim > Backend-Entwicklung > C++ > hat ein Zeichen, das der Summe der Häufigkeiten anderer Zeichen in der angegebenen Zeichenfolge entspricht

hat ein Zeichen, das der Summe der Häufigkeiten anderer Zeichen in der angegebenen Zeichenfolge entspricht

WBOY
Freigeben: 2023-09-11 09:53:03
nach vorne
562 Leute haben es durchsucht

hat ein Zeichen, das der Summe der Häufigkeiten anderer Zeichen in der angegebenen Zeichenfolge entspricht

Einführung

C++-Strings sind Streams aus alphanumerischen Zeichen. Strings haben die folgenden Eigenschaften -

  • Eine Zeichenfolge besteht aus einem festen Satz von Zeichen

  • Die Zeichenfolgenposition beginnt standardmäßig beim 0. Index

  • Die Häufigkeit eines Zeichens bezieht sich auf die Häufigkeit, mit der es in einer Zeichenfolge vorkommt. Die Häufigkeit jedes Zeichens kann zwischen 0 (sofern es nicht vorkommt) und der Länge der Zeichenfolge liegen.

In diesem Artikel entwickeln wir einen Code, der eine Zeichenfolge als Eingabe verwendet und prüft, ob die Häufigkeit eines Zeichens gleich der Summe der Häufigkeiten aller anderen Zeichen in der Zeichenfolge ist. Sehen wir uns das Beispiel unten an, um dieses Thema besser zu verstehen

Beispiel

Beispiel 1 – str – „@!ab@!“

Ausgabe – wahr

Zum Beispiel enthält die folgende Beispielzeichenfolge auch Sonderzeichen, und die entsprechende Häufigkeit jedes Zeichens ist wie folgt -

@=4

! = 2

a=1

b = 1

Daher hat die folgende Zeichenfolge die folgenden anwendbaren Eigenschaften

Frequenz(@) = Frequenz(!) + Frequenz(a)+Frequenz(b)

4 = 2 + 1 + 1

In diesem Artikel erstellen wir eine Lösung, um die Anzahl der Vorkommen jedes Zeichens in einer Zeichenfolge zu zählen und weiter zu prüfen, ob es ein Zeichen mit der erforderlichen Häufigkeitsanzahl gibt

Grammatik

str.length()
Nach dem Login kopieren

Länge()

Die Methode length() in C++ wird verwendet, um die Anzahl der Zeichen in einer Zeichenfolge zu zählen.

Algorithmus

  • Eingabezeichenfolge str akzeptieren

  • Erstellen Sie ein Array mit 26 Buchstaben, um die Häufigkeit des Auftretens von Zeichen zu speichern. Es wird mit der Anzahl 0 initialisiert, die durch das Freq-Array

  • angegeben wird
  • Verwenden Sie die Methode length(), um die Länge der Zeichenfolge zu berechnen, aufgezeichnet als len

  • Wenn die Zeichenfolgenlänge eine ungerade Zahl ist, wird ein falsches Flag zurückgegeben

  • Extrahieren Sie jedes Mal das Zeichen an der i-ten Position

  • Die Häufigkeit des Auftretens dieses Zeichens wird um 1 erhöht.

  • Überprüfen Sie nach der Berechnung der gesamten Länge der Zeichenfolge das Frequenzarray

  • Wenn die Häufigkeit eines Zeichens gleich der Summe der Häufigkeiten anderer Zeichen ist, wird der boolesche Flagwert „true“ zurückgegeben.

Beispiel

Mit dem folgenden C++-Codeausschnitt wird überprüft, ob ein Zeichen in einer bestimmten Eingabezeichenfolge mit einer Häufigkeit vorkommt, die der Summe der Häufigkeiten aller Zeichen entspricht -

//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;
}
Nach dem Login kopieren

Ausgabe

Input String : tweeet
Holds true for character e
Nach dem Login kopieren

Fazit

Zeichenpositionen in C++-Strings beginnen standardmäßig beim 0. Index. Ein String ist eine Speicherstruktur mit dynamischer Länge, in die Zeichen einfach und beliebig oft angehängt werden können. Jedem Zeichen in einer C++-Zeichenfolge ist eine Anzahl zugeordnet, die durch seine Häufigkeit dargestellt wird. Kartendatenstrukturen sind nützlich, wenn jeder Schlüssel einem bestimmten Wert zugeordnet ist.

Das obige ist der detaillierte Inhalt vonhat ein Zeichen, das der Summe der Häufigkeiten anderer Zeichen in der angegebenen Zeichenfolge entspricht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage