Ver Mensaje Individual
  #17 (permalink)  
Antiguo 15/12/2013, 05:42
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Propuesta para desafíos javascript 2014

Bien pantalaimon, no hace falta que machaques a los otros candidatos proponiendo 3 soluciones al mismo problema, me estás espantando a posibles futuros participantes xd.
Y como yo también estoy muy aburrido, y no sé cuánto tiempo me queda antes que me baneen del foro por irrespetuoso y mala educación, propondré otro reto, aunque más elaborado que el anterior:

El código morse tiene esta forma:
a .-
b -...
c -.-.
d -..
e .
f ..-.
g --.
h ....
i ..
j .---
k -.-
l .-..
m --
n -.
o ---
p .--.
q --.-
r .-.
s ...
t -
u ..-
v ...-
w .--
x -..-
y -.--
z --..

Pues bien, quiero dos funciones:
1-La primera, codificaMorse acepta una cadena con sólo letras (de la a a la z, sin tildes y sin incluir la Ñ) en mayúsculas o minúsculas, y tiene que devolver la cadena codificada a código morse. Todos los símbolos morse se ponen seguidos, excepto los espacios, que se siguen manteniendo.

2-La segunda función decodificaMorse, que es la que tiene chicha, es la que hace el trabajo contrario: Recoje una cadena con sólo símbolos ".", "-" o espacios, y la convierte a una cadena con espacios y letras desde la "a" a la "z". Ojo, es posible que la cadena morse pueda convertirse a varias cadenas de texto diferentes, así que esta función debe devolver siempre un array de cadenas. Dicho array puede estar vacío si no hay forma humana de descodificar la cadena. Es decir, la traducción tiene que ser exacta, debe gastar todos los símbolos por letras sin que sobre ninguno. Si os hace falta, se pueden crear funciones auxiliares.

Cuando haga pruebas, siempre usaré cadenas con sólo caracteres a-z y espacios para codificar, y sólo espacios, "." y "-" para decodificar.

Código Javascript:
Ver original
  1. function codificaMorse(str){
  2.     return ".-...-. -.-......-.-.";
  3. }
  4.  
  5. function decodificaMorse(str){
  6.     return ["at","em","ett","w"];
  7. }
  8.  
  9. console.log(codificaMorse("Ave Cesar"));
  10. console.log(decodificaMorse(".--"));


Por cierto, copiar vuestras soluciones para probarlas es un coñazo, mover el culo y además de escribir vuestro código dentro del post, poned también un enlace a http://jsfiddle.net/ con el reto resuelto y algún par de ejemplos que veáis interesantes.

Resolver este problema en vez del primero, también vale para apuntarse al desafío 2014, y además con nota.

Última edición por marlanga; 15/12/2013 a las 09:11