Publicado · en mejora
Algorithm
Guía práctica para entrevistas de programación: qué se evalúa, patrones frecuentes, un método paso a paso y cómo explicar la complejidad.
La estrategia para entrevistas de programación reúne hábitos y técnicas para resolver un problema de algoritmos con tiempo limitado mientras explicas tu razonamiento en voz alta. Combina un procedimiento repetible (aclarar el enunciado, probar ejemplos, empezar por la fuerza bruta, optimizar, programar y probar) con un pequeño repertorio de patrones recurrentes como tablas hash, dos punteros, ventanas deslizantes y sumas de prefijos.
Muchas empresas seleccionan desarrolladores con pruebas de programación y entrevistas de codificación en vivo, y evalúan algo más que la respuesta final: también cuentan la comprensión, la resolución, la calidad del código, la verificación y la comunicación. Un proceso claro te ayuda a demostrar esas habilidades aunque no llegues a la solución óptima, y sirve igual en la depuración y la revisión de código del día a día.
Estudia por patrones, no por cantidad: aprende un patrón, resuelve algunos problemas que lo usen y explica la solución y su complejidad en voz alta como si tuvieras delante a un entrevistador. Practica con cronómetro, verifica tu código con casos límite y una referencia de fuerza bruta, y termina con entrevistas simuladas.
Aclara primero el tamaño de la entrada, los casos límite y el formato de salida; las respuestas suelen decidir qué algoritmo es viable.
Plantea una solución simple y correcta con su complejidad, localiza el trabajo repetido y elimínalo con la estructura de datos adecuada.
Pistas como «ordenado», «contiguo» o «ya visto» apuntan a dos punteros, ventanas deslizantes o tablas hash.
Explica tus decisiones, recorre ejemplos pequeños a mano y comprueba los casos límite antes de dar el código por terminado.
longest_unique_window devuelve la longitud de la subcadena más larga sin caracteres repetidos. Avanza el extremo derecho paso a paso, recuerda la última posición de cada carácter y, ante una repetición dentro de la ventana, salta el extremo izquierdo justo detrás de ella, de modo que cada índice se procesa un número constante de veces: O(n). Ejecuta python sliding_window.py para ver el resultado con algunas cadenas de ejemplo.
sliding_window.py
def longest_unique_window(s: str) -> int:
"""Length of the longest substring without a repeated character (sliding window)."""
last_seen = {}
left = best = 0
for right, ch in enumerate(s):
if last_seen.get(ch, -1) >= left:
left = last_seen[ch] + 1
last_seen[ch] = right
best = max(best, right - left + 1)
return best
if __name__ == "__main__":
for text in ["tastedev", "abba", "interview", ""]:
print(f"{text!r}: {longest_unique_window(text)}")
python sliding_window.pySeis capítulos que te llevan desde la instalación hasta las ideas clave de Estrategia para entrevistas de código.
Haz preguntas, comparte tu experiencia e intercambia opiniones sobre Estrategia para entrevistas de código.
Todavía no hay debates. Empieza el primero.
0 comentarios
Iniciar sesión · Inicia sesión para dejar un comentario.
Sé el primero en comentar.