-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'Mutant-1' of https://github.com/BrenQ/Mutant into Mutant-1
- Loading branch information
Showing
1 changed file
with
41 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,41 @@ | ||
# Mutant | ||
Examen técnico para MeLi | ||
|
||
## **Examen Mercadolibre** | ||
|
||
|
||
|
||
Magneto quiere reclutar la mayor cantidad de mutantes para poder luchar contra los X-Men. | ||
|
||
Te ha contratado a ti para que desarrolles un proyecto que detecte si un humano es mutante basándose en su secuencia de ADN. | ||
|
||
Para eso te ha pedido crear un programa con un método o función con la siguiente firma (En alguno de los siguiente lenguajes: Java / Golang / C-C++ / Javascript (node) / Python / Ruby): | ||
|
||
**boolean isMutant(String[] dna);** // Ejemplo Java | ||
|
||
En donde recibirás como parámetro un array de Strings que representan cada fila de una tabla de (NxN) con la secuencia del ADN. Las letras de los Strings solo pueden ser: (A,T,C,G), las cuales representa cada base nitrogenada del ADN. | ||
|
||
 | ||
|
||
Sabrás si un humano es mutante, si encuentras más de una secuencia de cuatro letras iguales, de forma oblicua, horizontal o vertical. | ||
Ejemplo (Caso mutante): | ||
|
||
String[] dna = {"ATGCGA","CAGTGC","TTATGT","AGAAGG","CCCCTA","TCACTG"}; | ||
|
||
En este caso el llamado a la función isMutant(dna) devuelve “true”. | ||
|
||
Desarrolla el algoritmo de la manera más eficiente posible. | ||
|
||
**Desafíos**: | ||
|
||
Nivel 1: Programa (en cualquier lenguaje de programación) que cumpla con el método pedido por Magneto. | ||
|
||
Nivel 2: Crear una API REST, hostear esa API en un cloud computing libre (Google App Engine, Amazon AWS, etc), crear el servicio “/mutant/” en donde se pueda detectar si un humano es mutante enviando la secuencia de ADN mediante un HTTP POST con un Json el cual tenga el siguiente formato: | ||
|
||
POST → /mutant/ { “dna”:["ATGCGA","CAGTGC","TTATGT","AGAAGG","CCCCTA","TCACTG"] } | ||
|
||
En caso de verificar un mutante, debería devolver un HTTP 200-OK, en caso contrario un 403-Forbidden | ||
|
||
Nivel 3: Anexar una base de datos, la cual guarde los ADN’s verificados con la API. Solo 1 registro por ADN. Exponer un servicio extra “/stats” que devuelva un Json con las estadísticas de las verificaciones de ADN: {“count_mutant_dna”:40, “count_human_dna”:100: “ratio”:0.4} | ||
|
||
|
||
Tener en cuenta que la API puede recibir fluctuaciones agresivas de tráfico (Entre 100 y 1 millón de peticiones por segundo). | ||
|