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:
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.
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 😉