enunciados + leetcode
Enunciados como los de una entrevista real para resolver por tu cuenta, con el tiempo que te darían, y problemas de LeetCode recomendados para cada tecnología y seniority. Nada se corrige acá: resolvelo en tu editor, en voz alta, y marcá lo que ya practicaste.
Armá con FastAPI una API para un catálogo de libros guardado en memoria (un dict alcanza). Un libro es { "id": int, "title": str, "author": str, "year": int, "isbn": str }.
Implementá POST /books que devuelve 201 con el libro creado, GET /books con un filtro opcional ?author= y GET /books/{id}. Si el body no cumple las reglas, FastAPI tiene que responder 422 con el detalle del error.
# requisitos
BookCreate) y la salida (Book).title y author no pueden estar vacíos; year está entre 1450 y el año actual.isbn: respondé 409.id inexistente devuelve 404 usando HTTPException.# si te sobra tiempo, te van a preguntar
422 que da FastAPI y un 400 que devolvés vos?TestClient y pytest?Escribí una función top_words(text: str, n: int) -> list[tuple[str, int]] que devuelva las n palabras más frecuentes de un texto con su cantidad de apariciones.
Por ejemplo, top_words("El perro y el gato. ¡El perro!", 2) devuelve [("el", 3), ("perro", 2)]. Las palabras se comparan en minúsculas e ignorando signos de puntuación; ante un empate, van en orden alfabético.
# requisitos
collections.Counter o un dict.n es mayor que la cantidad de palabras distintas, devolvé todas.# si te sobra tiempo, te van a preguntar
heapq.nlargest?Recibís un CSV sales.csv con columnas date,product,quantity,unit_price (por ejemplo 2024-03-01,teclado,2,15000.50). Escribí una función que lo lea y devuelva un diccionario con el total facturado por mes, en el formato { "2024-03": 31001.0, "2024-04": 12000.0 }.
Algunas filas vienen rotas: cantidad vacía, precio con texto o fecha inválida. Esas filas no tienen que cortar el proceso.
# requisitos
csv y un context manager (with open(...)).logging y no con print.Decimal para los montos y justificá por qué.# si te sobra tiempo, te van a preguntar
dict para pasar de O(n²) a O(n), base de muchas otras preguntas.set resuelve en una línea lo que con listas sería lento.Counter y abre la puerta a discutir una solución O(1) en memoria.SELECT con WHERE y OR para calentar SQL, que en backend siempre aparece.GROUP BY con HAVING, la forma estándar de encontrar duplicados en una tabla.