Asuntos Oficiales > Retos
Lectura De Testo
Enko:
Nivel: Facil
Intoduccion:
Según un estudio de una universidad inglesa,
no importa el orden en el que las letras etsan escritas,
La unica cosa importante es que la primera y la ultima letra
esten escritas en la posicion correcta. El resto pueden estar
totalmente mal y aun podras leerlo sin problemas. Esto es porque
no leemos cada letra por si misma sino que la palabra es un todo.
Interesante, ¿ no ?
Términos:
A partir del diccionario(Diccionario.txt), dejado como archivo
adjunto, conjuntamente con el texto problema; se debera crear un
programa que lea cada palabra de ese archivo (Fuente.txt) y si
la palabra del archivo fuente posee la misma longitud que una
palabra del diccionario y además ambas empiezan y terminan con las
mismas letras (y las letras del medio de esta palabra coinciden, se debera corregir esta palabra.
El texto de de entrada deberá ser "corregido" y guardado en un archivo
nuevo con el nombre 'Salida.txt'
Otra condición:
Si una palabra del archivo de entrada no posee otra palabra que le corresponde
en el diccionario, esta debera estar entre corchetes : '[]' en el arcihivo
de salida.
FUENTE:
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
Sgeun un etsduio de una uivenrsdiad ignlsea, no ipmotra el odren en el que las ltears etsan ersciats, la uicna csoa ipormtnate es que la pmrirea y la utlima ltera esten ecsritas en la psiocion cocrrtea. El rsteo peuden estar ttaolmntee mal y aun pordas lerelo sin pobrleams. Etso es pquore no lemeos cdaa ltera por si msima snio que la paalbra es un tdoo. Pesornamelnte me preace icrneilbe...
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
DICCIONARIO:
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
a aun aunque cada con correcta correcto cosa de desde doy e embargo en entre el es esa escritas ese eso estar este esten esto estudio fe importa importante increible inglesa la las leemos leerlo letra letras los mal mas me misma ni no orden palabra para parece pero personalmente por porque posicion primera problemas pueden que resto segun si sin sino sobre todo totalmente un una unica ultima ultimo universidad uno unos y
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
SALIDA:
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
segun un estudio de una universidad inglesa, no importa el orden en el que las letras [etsan] escritas, la unica cosa importante es que la primera y la ultima letra esten escritas en la posicion correcta. el resto pueden estar totalmente mal y aun [pordas] leerlo sin problemas. esto es porque no leemos cada letra por si misma sino que la palabra es un todo. personalmente me parece increible...
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
Tienen tiempo para hacerlo.
Yo personalmente todavia lo realize en pseudocodigo así que tambien será un reto para mi.
Blag:
¿Cuál es la fecha límite del reto? Es decir....cuando termina.......
Saludos,
Blag :devil:
Binary:
Hola!
Resolvi tu reto :D
La cosa es que la salida que has dado esta erronea, y el diccionario contiene palabras de la misla longitud que empiezan y terminan igual.
Sin embargo, me parecio un reto interesante y curioso. :D
Aqui te mando el programa.
Es muy simple: tiene 80 lineas, pero la mitad son comentarios para claridad.
Tiene capacidad de hasta 5000 palabras (no veo necesidad para hacerlo mas espacioso). Maximo largo de palabra 20, maximo largo de puntuacion 3, maximo espacio entre palabras: 1.
El algoritmo es lineal, me refiero a que al toparse con una palabra del texto lo busca entre todas las palabras del diccionario con este largo. Eso significa que el algoritmo llega hasta una complejidad de O(M[x]) para cada palabra con largo X, donde M[x] es el numero de palabras en el diccionario con largo x.
Una posible optimacizacion para el algoritmo para acelerarlo, seria ordenar las palabras de un mismo largo (del diccionario) por orden lexicografico y buscar una que empieze con la letra deseada, mediante Binary_search().
Eso daria una velocidad de hasta lg(M[x])) + O(lgM[x]) para cada palabra.
Eso aceleraria el proceso solo si las palabras de igual largo empiezan con diferentes letras, sino el bin_search() indicara buscar desde la palabra 1 hasta el final, y no cabe sentido.
... Adjunto el codigo ...
Esta escrito en C/C++ :D
Personalmente, prefiero la entrada/salida de C, pero en C++ todo lo que es definicion de tipos y punteros es mas accesible, asiq ue generalmente hago una mezcla.
Saludos.
Binary:
segun un embargo de una universidad importa, no importa el orden en el que las leemos esten escritas, la unica cada importante es que la palabra y la ultima letra esten escritas en la posicion correcta. el resto pueden estar totalmente mal y aun [pordas] leerlo sin problemas. esto es parece no leemos cada letra por si misma sino que la palabra es un todo. personalmente me parece increible...
Esta es la salida que da mi programa, como vemos,
"embargo" == "estudio"
"inglesa" == "importa"
etc.
P.D. no lo tomes como una critica, por favor.
Con mis mejores intenciones.
Saludos.
Blag:
--- Citar ---Hola!
Resolvi tu reto :D
--- Fin de la cita ---
Binary......Eres muy veloz programando o tienes mucho tiempo libre???? :P
Saludos,
Blag :devil:
Navegación
[#] Página Siguiente
Ir a la versión completa