Sobre el proyecto
Coding Problems es un repositorio orientado al aprendizaje que reúne soluciones en Python 3 a problemas algorítmicos y de estilo entrevista de programación, junto con un conjunto seleccionado de recursos de estudio. El README indica claramente que el material está destinado al aprendizaje y la investigación, no al uso en producción.
Soluciones
Todas las soluciones están escritas en Python 3 y dependen únicamente de funciones integradas y algunos módulos de la biblioteca estándar (math, collections, heapq, random), por lo que no se requieren paquetes externos para ejecutarlas. El autor eligió Python porque se lee de forma cercana al pseudocódigo, lo que facilita portar la lógica a otros lenguajes. El estilo de código sigue PEP8.
Cada archivo de solución usa una plantilla consistente: una cadena de documentación con el nombre del problema, la explicación, la descripción de entrada/salida y uno o más enfoques de solución con complejidad temporal y espacial; luego las funciones de solución; y después una sección simple de pruebas que imprime resultados con print() en lugar de un framework de pruebas unitarias (el README señala unittest o pytest como mejores alternativas para pruebas reales).
Los problemas se agrupan en categorías: Arrays (ordenamiento, búsqueda binaria, divide y vencerás, ventana deslizante), Listas enlazadas, Árboles (BST, recorridos BFS/DFS), Estructuras de datos hash (conjuntos y diccionarios), Programación dinámica (1D/2D, LCS, LIS, mochila), Cadenas, Matemáticas (MCD, MCM, factorización, geometría) y Otros (backtracking, BFS, DFS, pilas, colas, deques, heaps, matrices). El autor señala que los problemas provienen de sitios como LeetCode; solo las soluciones y explicaciones son originales.
Recursos de aprendizaje
El repositorio también selecciona recursos en cuatro grupos:
- Cursos: cursos universitarios gratuitos de Stanford, Princeton, UC San Diego, MIT, Harvard y UC Berkeley, que cubren algoritmos, estructuras de datos, algoritmos de grafos y temas avanzados.
- Libros: una breve lista anotada que incluye Grokking Algorithms, CLRS, Sedgewick & Wayne, The Algorithm Design Manual, Dasgupta et al., Competitive Programming 3 y Cracking the Coding Interview.
- Sitios de práctica: una larga lista de plataformas de práctica como Codeforces, HackerRank, Topcoder, AtCoder, SPOJ, Project Euler, Kattis, Codewars, Codility y otras.
- Otros recursos: Geeks For Geeks, TheAlgorithms/Python, CP Algorithms, visualizadores (USFCA, VisuAlgo, Algorithm Visualizer), diversos tutoriales y listas de reproducción de YouTube.
El README invita a reportar errores o proponer implementaciones mejoradas mediante issues o pull requests, y señala que el repositorio se actualiza periódicamente.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.