Skip to content

Instantly share code, notes, and snippets.

@Mardiniii
Last active February 16, 2017 23:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mardiniii/129a95ffe2fda886f42de8f33b0da440 to your computer and use it in GitHub Desktop.
Save Mardiniii/129a95ffe2fda886f42de8f33b0da440 to your computer and use it in GitHub Desktop.
Make It Real Challenge for V4 students.

HOY TENEMOS UN RETO!!!

Nos contactó la Fiscalia General de la nación, estan enloquecidos con la cantidad de documentos e información física que tienen en sus archivadores, no estan conformes con digitalizarla o escanearla ya que esto significaría demasiadas gigas de almacenamiento y no sería optimo, por lo tanto quieren que solucionemos este problema en el menor tiempo posible con un algoritmo de compresión.

## ¿Como lo haremos?

Debemos crear un algoritmo que nos permita comprimir la información de todos los procesos penales que allí se llevan a cabo, para eso debemos implementar la siguiente funcionalidad:

Si tenemos el siguiente texto:

"This specification is the specification for a specification"

Lo que haremos es comprimirlo generando dos arreglos. El primero contendrá todas las palabras encontradas en el texto sin repetirlas, como se ve a continuación:

[ "This", "specification", "is", "the", "for", "a"]

El segundo contendrá indices enteros en donde cada uno de estos hará referencia a la posición de la palabra en nuestro arreglo anterior según estas aparezcan en el documento, para este caso tenemos:

[ 0, 1, 2, 3, 1, 4, 5, 1 ]

Con estas dos secuencias sera posible reproducir el contenido original de cada documento recorriendo el arreglo de indices según corresponda a cada palabra en nuestro primer arreglo, por ejemplo:

0 - This
1 - Specification
2 - is 
3 - the
1 - specification
4 - for 
5 - a
1 - specification

De lo anterior:

"This specification is the specification for a specification"

Vamos con toda y recuerda que programación orientada a objetos es una excelente opción para resolver este tipo de problemas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment