Dada una string S que contiene caracteres ingleses en minúsculas, la tarea es encontrar la frecuencia de todos los caracteres en la string .
Ejemplos:
Entrada: S=”geeksforgeeks”
Salida:
e – 4
f – 1
g – 2
k – 2
o – 1
r – 1
s – 2Entrada : S=”gfg”
Salida:
f – 1
g – 2
Enfoque: Siga los pasos para resolver el problema:
- Inicialice una array freq[] para almacenar la frecuencia de cada alfabeto en la string dada . El índice 0 almacena la frecuencia del carácter ‘ a’ , el índice 1 st/sup> almacena la frecuencia del carácter ‘b’ y así sucesivamente.
- Itere sobre la string S dada e incremente la frecuencia de cada carácter encontrado en 1 , realizando freq[S[i] – ‘a’] += 1 . Si S[i] = ‘a’ , entonces S[i] – ‘a’ es igual a 0, por lo que la frecuencia de ‘a’ se incrementa en el arreglo.=
- Después de completar el recorrido de la string, imprima la frecuencia de todos los caracteres de la string recorriendo la array freq[] .
A continuación se muestra la implementación del enfoque anterior:
C
// C program for the above approach #include <stdio.h> #include <string.h> // Function to print the frequencies // of each character of the string void printFrequency(int freq[]) { for (int i = 0; i < 26; i++) { // If frequency of the // alphabet is non-zero if (freq[i] != 0) { // Print the character and // its respective frequency printf("%c - %d\n", i + 'a', freq[i]); } } } // Function to calculate the frequencies // of each character of the string void findFrequncy(char S[]) { int i = 0; // Stores the frequencies // of each character int freq[26] = { 0 }; // Traverse over the string while (S[i] != '\0') { // Increment the count of // each character by 1 freq[S[i] - 'a']++; // Increment the index i++; } // Function call to print // the frequencies printFrequency(freq); } // Driver Code int main() { char S[100] = "geeksforgeeks"; findFrequncy(S); }
Producción:
e - 4 f - 1 g - 2 k - 2 o - 1 r - 1 s - 2
Complejidad temporal: O(N)
Espacio auxiliar: O(26)
Publicación traducida automáticamente
Artículo escrito por ArifShaikh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA