RLE (Encontrar / frecuencia de impresión de letras en una cadena)

Aquí, vamos a aprender cómo encontrar / imprimir la frecuencia de las letras en una cadena utilizando la codificación run-des tiempo ?

Descripción del problema

Escribir un programa que cuenta la frecuencia de cada letra de la cadena (cadena consiste sólo letras minúsculas).

Solución:

Algoritmo

  1. inicializar una matriz de 26 elementos para cada letra (az) a 0. ( array [26] = {0} )
  2. Scan la toda la cadena y para cada elemento de cadena comprobar la letra y aumentan la frecuencia en la matriz utilizando valor ASCII. ( array [str [i] – ‘a’] ++ )
    Como en str = “aaabbccccddef” ,
    str [3] = ‘b’
    Por lo tanto, y str [2] -‘ a ‘= 1
    por lo tanto, aumenta la frecuencia de ‘b’ por 1 (array [str [3] -‘ a ‘] turnos para ser array [1] ++ )
  3. Finalmente imprimir la carta con sus respectivas frecuencias. Esta es la cadena codificada.

programa en C ++ para encontrar / frecuencia de impresión de letras de una cadena

#include <bits/stdc++.h>
using namespace std;
void freq(string s){
//array to store frequency of 26 characters,initialized to 0
int arr[26]={0};
for(int i=0;i<s.length();i++){
// s[i] is the ascii value of the letter at index i & 'a'
//also gives the ascii value of a, in this way we are
//checking which alphabet is at index i and increasing its frequency
arr[s[i]-'a']++;
}
for(int i=0;i<26;i++){
if(arr[i]!=0)
printf("%d%c",arr[i],'a'+i);
}
cout<<endl;
}
int main(){
string s;
cout<<"enter stringn";
cin>>s;
cout<<"encoded string is : "<<endl;
freq(s);
return 0;
}

salida

enter string
aaaabbcccccddf
encoded string is :
4a2b5c2d1f

mensajes recomendados

  • comprobación de los anagramas (comprobación de si dos cuerdas es anagramas o no)
  • Conde y Say secuencia
  • común más largo prefijo
  • Conde subcadenas
  • Número siguiendo el patrón
  • siguiente Permutación
  • Convertir ternario Expresión a binario árbol
  • Conde de cadenas que se pueden formar usando a, B y C bajo restricciones dadas
  • número mínimo de tirones
  • contar los casos de los anagramas
  • Reorganizar una cadena
  • Imprimir soporte número
  • más larga palindrómica Subsequence
  • _137 _ Preordenes de orden posterior de BST

  • diferencia máxima de ceros y unos en cadena binaria


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *