En este post voy a resolver un ejercicio que dice así:

Crear una función que reciba una cadena y regrese la primera letra o carácter que no se repita en toda la cadena. No importa si la letra está en mayúscula o minúscula, se cuenta como repetida de igual manera. Eso sí, al regresar la letra se debe regresar en su forma original (es decir, si era mayúscula se regresa mayúscula, si no, minúscula).

Por si no se encuentra una letra que no se repita, se debe regresar una cadena vacía.

Dicho de otra manera, se necesita buscar la primera letra que aparezca exactamente una vez en la cadena. Lo he tomado de codewars.

Veamos entonces cómo resolverlo. Vamos a convertir a minúscula y a ver si una letra aparece únicamente una vez.

Solución al ejercicio

Hay que recorrer la cadena del inicio al fin, obteniendo carácter por carácter. Por cada uno, buscar si su posición inicial es igual a su posición final, en caso de que sea así, ese carácter no se repite.

La posición inicial quiere decir que es la primera aparición de la letra en la cadena de izquierda a derecha. La posición final quiere decir que es la primera aparición de la letra en la cadena de derecha a izquierda.

Por ejemplo, tenemos la palabra “estrés“. Recorremos y encontramos primero la letra e (vamos a omitir los acentos por ahora). La primera posición es en el 0 (o sea, índice 0 de la cadena) y su posición final es la 4, por lo tanto, la é se repite.

Pasamos por la letra s, su inicial es la 1 y su final es la 5, por lo tanto se repite. Pero al llegar a la letra t, su posición inicial es la 2 y su final la 2 (son iguales), por lo tanto la t es la que no se repite.

Hablar es de mal gusto, muéstrame el código

Las funciones que nos ayudan a saber la primera y última aparición son respectivamente indexOf y lastIndexOf.

Para recorrer una cadena usamos charAt y un simple ciclo for. En el caso de las minúsculas usamos toLowerCase.

Una vez que ya explicamos el algoritmo, veamos el código. He creado una función que recibe una cadena y devuelve la primera letra que no se repita. Queda así:

Dentro del código también he incluido algunas maneras de probar la función.

Primera letra que no se repite en JavaScript

Primera letra que no se repite en JavaScript

Probar y descargar ejercicio

Si quieres puedes probar el ejemplo en línea. También puedes descargarlo y ejecutarlo en el navegador o con Node.Js.

Y así es como terminamos por hoy. Te invito a leer más sobre JavaScript.

¿Encontraste lo que buscabas?

Si es así, suscríbete para que estés enterado de mis nuevos posts sobre programación e informática

Estoy interesado en trabajar contigo de manera remota para llevar tu idea a la realidad, formar parte de tu equipo de desarrolladores, ayudarte con tu tarea, dar asesorías y todo lo relacionado con tecnología y programación. Contáctame para más información
No te vayas sin seguirme en Twitter, Facebook y GitHub
Si tienes dudas déjalas en un comentario, pero asegúrate de seguirme antes como agradecimiento (no te cuesta nada y me ayudas mucho)


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB. Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron. Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scripts La plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C. Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Share via
A %d blogueros les gusta esto: