En esta ocasión vamos a resolver un algoritmo muy utilizado en entrevistas, usaremos el lenguaje javascript ya que es fácil de testear y además puedes luego convertirlo fácilmente a otro lenguaje de tu preferencia, arranquemos:
Enunciado
Dado un texto, devolver la letra que más repeticiones tiene.
No se debe considerar los espacios y si hay empate en la letra resultante, devolver cualquiera de ellas.
Armando algoritmo
- Reemplazar espacios en la cadena
- Iteramos la cadena caracter por caracter y lo guardamos en una variable objeto para poder mapear cada caracter al estilo key value
- Por cada caracter iterado le asignaremos el valor 1 si es primera aparición o si no su contador irá sumando
- Iteramos por cada caracter del mapeo
- Si su value (es decir su número de apariciones) supera a la máxima reemplaza este valor, así nos aseguramos de tener el número de repeticiones máximo presente en el mapeo y asignamos su key como letra resultante.
- Devolver resultante
Resolución en JS
function MoreUsedLetter(text){
let mapeo = {}
let max = 0;
let result = "";
for(let letra of text.replace(/\s/g,'')){
if(!mapeo[letra]){
mapeo[letra]=1;
}
else{
mapeo[letra]++;
}
}
for(let letra in mapeo){
if(mapeo[letra] > max){
max = mapeo[letra];
result = letra;
}
}
console.log(result);
}
MoreUsedLetter("este es un texto que voy a probar");
A las pruebas me remito
Para estos ejercicios uso VS Code:
![](https://bravedeveloper.com/wp-content/uploads/2021/11/image-1024x677.png)
Para probar hemos instalado previamente node.js para poder ejecutar código javascript en consola, en este algoritmo anterior explico cómo hacerlo.
Ingresamos un texto y nos dió la respuesta acertada! Genial 😎 Pruébala y analiza bien el código, intenta mejorarlo, así se aprende.
![](https://bravedeveloper.com/wp-content/uploads/2021/11/ganando-como-siempre-ganando.gif)
Si quieres puedes descargar el código en este repo de mi cuenta Github.
Recuerda que esta entrada es de la serie de artículos Algoritmos notables, los cuales los subo a este repo, puedes visitarlo y descubrir más algoritmos 😊
Si te ha gustado esta entrada capo, considera compartirla y practicarla 😉