Heim  >  Artikel  >  Backend-Entwicklung  >  Die Summe der Häufigkeiten von Zeichen in einer Zeichenfolge in einer anderen Zeichenfolge

Die Summe der Häufigkeiten von Zeichen in einer Zeichenfolge in einer anderen Zeichenfolge

王林
王林nach vorne
2023-09-01 15:37:13700Durchsuche

Die Summe der Häufigkeiten von Zeichen in einer Zeichenfolge in einer anderen Zeichenfolge

In diesem Artikel werden wir ein interessantes Problem im Zusammenhang mit String-Operationen in C++ untersuchen. Die Problemstellung ist „die Summe der Häufigkeiten, mit denen Zeichen in einer Zeichenfolge in einer anderen Zeichenfolge vorkommen“. Diese Frage bietet eine großartige Gelegenheit, Ihr Verständnis der Zeichenfolgenmanipulation, der Berechnung der Zeichenhäufigkeit und der Zuordnungskonzepte in C++ zu verbessern.

Problemstellung

Bei zwei gegebenen Zeichenfolgen besteht die Aufgabe darin, die Summe der Häufigkeiten des Auftretens von Zeichen in der ersten Zeichenfolge in der zweiten Zeichenfolge zu ermitteln.

C++-Lösungsmethode

Um dieses Problem zu lösen, erstellen wir zunächst mithilfe einer Hash-Map eine Häufigkeitskarte für die beiden Zeichenfolgen. Ein Häufigkeitsdiagramm ist eine Zuordnung jedes Zeichens in einer Zeichenfolge zur Anzahl dieses Zeichens in der Zeichenfolge. Hierzu verwenden wir STL unordered_map. Nachdem wir das Häufigkeitsdiagramm erstellt haben, iterieren wir über das Häufigkeitsdiagramm der ersten Zeichenfolge und addieren für jedes Zeichen, das auch in der zweiten Zeichenfolge vorhanden ist, seine Häufigkeit zu unserer Summe.

Beispiel

Dies ist der C++-Code, der diese Lösung implementiert -

#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;

int sumOfFrequencies(string str1, string str2) {
   unordered_map<char, int> freq1, freq2;
   
   for (char c : str1) {
      freq1[c]++;
   }
   
   for (char c : str2) {
      freq2[c]++;
   }
   
   int sum = 0;
   for (auto& kv : freq1) {
      if (freq2.count(kv.first)) {
         sum += kv.second;
      }
   }
   
   return sum;
}

int main() {
   string str1 = "hello", str2 = "world";
   cout << "The sum of frequencies is: " << sumOfFrequencies(str1, str2);
   return 0;
}   

Ausgabe

The sum of frequencies is: 3

Testfallbeschreibung

Betrachten wir die Zeichenfolgen „Hallo“ und „Welt“.

Wenn wir diese Zeichenfolgen an die Funktion sumOfFrequencies übergeben, erstellt diese zunächst eine Frequenzkarte für beide Zeichenfolgen. Für „Hallo“ ist die Frequenzzuordnung {'h':1, 'e':1, 'l':2, 'o':1} und für "Welt" ist die Frequenzzuordnung {'w': 1, ' o':1, 'r':1, 'l':1, 'd':1}.

Die Funktion iteriert dann über die Häufigkeitskarte von „Hallo“ und addiert für jedes Zeichen, das auch in „Welt“ vorkommt, seine Häufigkeit zur Summe. Die gebräuchlichen Zeichen sind „o“ und „l“, deren Häufigkeiten in „hello“ 1 bzw. 2 betragen. Daher beträgt die Summe der Häufigkeiten 3.

Die Ausgabe dieses Programms lautet also „Die Summe der Frequenzen beträgt: 3“.

Fazit

Diese Frage bietet uns eine großartige Gelegenheit, das Konzept der Frequenzzuordnung in C++ zu verstehen und zu üben. Dies ist eine großartige Frage, um Ihre C++-Codierungskenntnisse zu verbessern und zu verstehen, wie Sie mit Strings und Maps arbeiten, um Probleme zu lösen.

Das obige ist der detaillierte Inhalt vonDie Summe der Häufigkeiten von Zeichen in einer Zeichenfolge in einer anderen Zeichenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen