Dada una string str , la tarea es encontrar la frecuencia de cada carácter de una string usando un mapa_desordenado en C++ STL .
Ejemplos:
Entrada: str = “geeksforgeeks”
Salida:
r 1
e 4
s 2
g 2
k 2
f 1
o 1Entrada: str = “programación”
Salida:
n 1
i 1
p 1
o 1
r 2
a 1
g 2
m 2
Acercarse:
- Recorre cada carácter de la string dada str .
- Compruebe si el carácter actual está presente en unordered_map o no.
- Si está presente, actualice la frecuencia de los caracteres actuales; de lo contrario, inserte los caracteres con frecuencia 1 como se muestra a continuación:
if(M.find(s[i])==M.end()) { M.insert(make_pair{s[i], 1}); } else { M[s[i]]++; }
4. Atraviese unordered_map e imprima la frecuencia de cada carácter almacenado como un valor asignado.
A continuación se muestra la implementación del enfoque anterior:
CPP
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; void printFrequency(string str) { // Define an unordered_map unordered_map<char, int> M; // Traverse string str check if // current character is present // or not for (int i = 0; str[i]; i++) { // If the current characters // is not found then insert // current characters with // frequency 1 if (M.find(str[i]) == M.end()) { M.insert(make_pair(str[i], 1)); } // Else update the frequency else { M[str[i]]++; } } // Traverse the map to print the // frequency for (auto& it : M) { cout << it.first << ' ' << it.second << '\n'; } } // Driver Code int main() { string str = "geeksforgeeks"; // Function call printFrequency(str); return 0; }
Producción
r 1 e 4 s 2 g 2 k 2 f 1 o 1
Publicación traducida automáticamente
Artículo escrito por hrishikeshkonderu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA