Nota: Este articulo ha sido traducido mediante un software, por ende puede presentar errores. Al final del articulo se encuentra el enlace a la fuente original.
Hay muchos graduados y programadores en informática que solicitan roles de programación, codificación y desarrollo de software en empresas como Uber y Netflix; grandes organizaciones como Amazon , Microsoft y Google ; y compañías basadas en servicios como Infosys o Luxsoft, pero muchas de ellas no tienen idea de qué tipo de preguntas de entrevista de programación pueden esperar cuando solicita un trabajo en estas compañías.
En este artículo, compartiré algunas preguntas frecuentes sobre entrevistas de programación de diferentes entrevistas para programadores con diferentes niveles de experiencia, desde personas que se acaban de graduar de la universidad hasta programadores con uno o dos años de experiencia .
Las entrevistas de codificación se componen principalmente de la estructurade datos y las preguntas basadas en algoritmos, así como algunas de las preguntas lógicas, tales como: ¿Cómo intercambiar dos enteros sin usar una variable temporal?
Creo que es útil dividir las preguntas de la entrevista de codificación en diferentes áreas temáticas. Las áreas temáticas que he visto más a menudo en las entrevistas son matriz, lista enlazada, cadena, árbol binario, así como preguntas de algoritmos (por ejemplo, algoritmo de cadena, algoritmos de clasificación como quicksort o radix sort , y otros varios), y eso es lo que Lo encontrarás en este artículo.
No se garantiza que se le hagan estas preguntas de codificación o estructura de datos y algoritmos , pero le darán suficiente idea de los tipos de preguntas que puede esperar en una entrevista de trabajo de programación real.
Una vez que haya realizado estas preguntas, debe sentirse lo suficientemente seguro como para asistir a cualquier entrevista telefónica o cara a cara.
Por cierto, no tiene sentido intentar estas preguntas si no tiene el conocimiento suficiente de la estructura de datos y los algoritmos esenciales, o si no los ha tocado desde hace siglos.
Top 50 algoritmos y preguntas de la entrevista de codificación
Sin más preámbulos, aquí está mi lista de algunas de las preguntas de entrevistas de programación más frecuentes de la programación de entrevistas de trabajo :
1. Preguntas de la entrevista de codificación de matrices
Una matriz es la estructura de datos más fundamental, que almacena elementos en una ubicación de memoria contigua. También es uno de los temas favoritos de los entrevistadores y escuchará muchas preguntas sobre una matriz en cualquier entrevista de codificación , por ejemplo, revertir una matriz, clasificar la matriz o buscar elementos en la matriz.
El beneficio clave de una estructura de datos de matriz es que ofrece una búsqueda rápida O (1) si conoce el índice, pero agregar y eliminar un elemento de una matriz es lento porque no puede cambiar el tamaño de la matriz una vez que se crea.
Para crear una matriz más corta o más larga, debe crear una nueva matriz y copiar todos los elementos de los antiguos a los nuevos.
La clave para resolver preguntas basadas en matrices es tener un buen conocimiento de la estructura de datos de matrices , así como de los constructores de programación básicos, como los operadores de bucle, recursión y fundamentales.
Estas son algunas de las preguntas de entrevista de codificación populares basadas en matrices para su práctica:
- ¿Cómo encuentras el número faltante en una matriz de enteros dada de 1 a 100? ( solución )
- ¿Cómo encuentras el número duplicado en una matriz de enteros dada? ( solución )
- ¿Cómo encuentra el número más grande y más pequeño en una matriz de enteros sin clasificar? ( solución )
- ¿Cómo encuentras todos los pares de una matriz de enteros cuya suma es igual a un número dado? ( solución )
- ¿Cómo encontrar números duplicados en una matriz si contiene múltiples duplicados? ( solución )
- ¿Cómo se eliminan los duplicados de una matriz dada en Java? (solución )
- ¿Cómo se ordena una matriz de enteros utilizando el algoritmo de ordenación rápida? ( solución )
- ¿Cómo se eliminan los duplicados de una matriz en su lugar? (solución )
- ¿Cómo revertir una matriz en su lugar en Java? ( solución )
- ¿Cómo se eliminan los duplicados de una matriz sin utilizar ninguna biblioteca? ( solución )
Estas preguntas no solo lo ayudarán a desarrollar sus habilidades de resolución de problemas sino que también mejorarán su conocimiento de la estructura de datos de la matriz.
Si necesita preguntas más avanzadas basadas en matrices, también puede ver The Booting Entrevista de codificación: Algoritmos + Estructuras de datos , un curso de estilo bootcamp sobre algoritmos, especialmente diseñado para la preparación de entrevistas para conseguir trabajo en gigantes técnicos como Google, Microsoft, Apple , Facebook etc.
Y, si cree que 10 no son suficientes preguntas y necesita más práctica, entonces también puede consultar esta lista de 30 preguntas principales .
2. Lista de preguntas de la entrevista de programación vinculada
Una lista enlazada es otra estructura de datos común que complementa la estructura de datos de la matriz. Al igual que la matriz, también es una estructura de datos lineal y almacena elementos de forma lineal.
Sin embargo, a diferencia de la matriz, no los almacena en ubicaciones contiguas; en su lugar, están dispersos en todas partes en la memoria, que se conectan entre sí mediante nodos.
Una lista vinculada no es más que una lista de nodos donde cada nodo contiene el valor almacenado y la dirección del siguiente nodo.
Debido a esta estructura, es fácil agregar y eliminar elementos en una lista vinculada , ya que solo necesita cambiar el enlace en lugar de crear la matriz, pero la búsqueda es difícil y, a menudo, requiere O (n) tiempo para encontrar un elemento en la lista. lista enlazada individualmente.
Este artículo proporciona más información sobre la diferencia entre una matriz y las estructuras de datos de listas vinculadas.
También viene en variedades como una lista enlazada individualmente, que le permite recorrer en una dirección (adelante o atrás); una lista doblemente enlazada , que le permite recorrer ambas direcciones (hacia adelante y hacia atrás); y finalmente, la lista enlazada circular, que forma un círculo.
Para resolver preguntas basadas en listas vinculadas, un buen conocimiento de la recursión es importante, porque una lista enlazada es una estructura de datos recursiva .
Si toma un nodo de una lista vinculada, la estructura de datos restante sigue siendo una lista vinculada, y debido a eso, muchos problemas de la lista vinculada tienen soluciones recursivas más simples que las iterativas.
Estas son algunas de las preguntas más comunes y populares de la entrevista de la lista enlazada y sus soluciones:
- ¿Cómo encuentras el elemento central de una lista enlazada individualmente en una sola pasada? ( solución )
- ¿Cómo verifica si una lista vinculada dada contiene un ciclo? ¿Cómo se encuentra el nodo de inicio del ciclo? ( solución )
- ¿Cómo revertir una lista enlazada? ( solución )
- ¿Cómo revertir una lista enlazada individualmente sin recursión? (solución )
- ¿Cómo se eliminan los nodos duplicados en una lista enlazada sin clasificar? ( solución )
- ¿Cómo encuentras la longitud de una lista unida? ( solución )
- ¿Cómo encuentras el tercer nodo desde el final en una lista enlazada individualmente? ( solución )
- ¿Cómo encuentras la suma de dos listas vinculadas usando Stack? (solución )
Estas preguntas le ayudarán a desarrollar sus habilidades de resolución de problemas, así como a mejorar su conocimiento de la estructura de datos de la lista vinculada.
3. Preguntas de la entrevista de codificación de cadena
Junto con la matriz y las estructuras de datos de listas vinculadas, una cadena es otro tema popular en la programación de entrevistas de trabajo. Nunca he participado en una entrevista de codificación en la que no se hicieron preguntas basadas en cadenas .
Una buena cosa acerca de la cadena es que si conoce la matriz, puede resolver preguntas basadas en cadenas fácilmente porque las cadenas no son más que una matriz de caracteres .
Por lo tanto, todas las técnicas que aprende resolviendo preguntas de codificación basadas en matrices pueden usarse también para resolver preguntas de programación de cadenas.
Aquí está mi lista de preguntas frecuentes sobre codificación de cadenas de entrevistas de trabajo de programación:
- ¿Cómo se imprimen los caracteres duplicados de una cadena? (solución )
- ¿Cómo se comprueba si dos cadenas son anagramas entre sí? (solución )
- ¿Cómo se imprime el primer carácter no repetido de una cadena? (solución )
- ¿Cómo se puede revertir una cadena dada usando la recursión? (solución )
- ¿Cómo verificas si una cadena contiene solo dígitos? ( solución )
- ¿Cómo se encuentran los caracteres duplicados en una cadena? (solución )
- ¿Cómo se cuentan varias vocales y consonantes en una cadena dada?( solución )
- ¿Cómo se cuenta la aparición de un carácter dado en una cadena? (solución )
- ¿Cómo encuentras todas las permutaciones de una cadena? ( solución)
- ¿Cómo invertir las palabras en una oración dada sin usar ningún método de biblioteca? ( solución )
- ¿Cómo verificas si dos cadenas son una rotación de la otra? ( solución)
- ¿Cómo verificas si una cadena dada es un palíndromo? ( solución )
Estas preguntas ayudan a mejorar su conocimiento de la cadena como una estructura de datos. Si puede resolver todas estas preguntas de cadena sin ninguna ayuda, entonces está en buena forma.
4. Preguntas de la entrevista de codificación de árbol binario
Hasta ahora, solo hemos analizado la estructura de datos lineales, pero toda la información en el mundo real no se puede representar de forma lineal, y ahí es donde ayuda la estructura de datos del árbol.
La estructura de datos del árbol es una estructura de datos que le permite almacenar sus datos de manera jerárquica. Dependiendo de cómo almacene los datos, hay diferentes tipos de árboles, como un árbol binario , donde cada nodo tiene, como máximo, dos nodos secundarios.a
Junto con su primo cercano árbol de búsqueda binario , también es una de las estructuras de datos de árbol más populares. Por lo tanto, encontrará muchas preguntas basadas en ellas, como la forma de atravesarlas, contar los nodos, encontrar la profundidad y verificar si están equilibradas o no.
Un punto clave para resolver las preguntas del árbol binario es un fuerte conocimiento de la teoría, por ejemplo, cuál es el tamaño o la profundidad del árbol binario, qué es una hoja y qué es un nodo, así como una comprensión de los algoritmos de desplazamiento populares, por ejemplo Recorrido pre, post y en orden.
Aquí hay una lista de preguntas de codificación populares basadas en árboles binarios de entrevistas de trabajo de ingenieros o desarrolladores de software:
- ¿Cómo se implementa un árbol binario de búsqueda? ( solución )
- ¿Cómo se realiza el recorrido de preorden en un árbol binario dado? (solución )
- ¿Cómo se atraviesa un árbol binario dado en preorden sin recursión?( solución )
- ¿Cómo se realiza un recorrido inorder en un árbol binario dado? (solución )
- ¿Cómo se imprimen todos los nodos de un árbol binario dado utilizando el recorrido inorder sin recursión? ( solución )
- ¿Cómo se implementa un algoritmo de recorrido posterior al pedido?( solución )
- ¿Cómo se atraviesa un árbol binario en el recorrido posterior al pedido sin recursión? ( solución )
- ¿Cómo se imprimen todas las hojas de un árbol binario de búsqueda?( solución )
- ¿Cómo se cuenta un número de nodos de hoja en un árbol binario dado? ( solución )
- ¿Cómo se realiza una búsqueda binaria en una matriz dada? (solución )
5. Diversas preguntas de la entrevista de codificación
Además de las preguntas basadas en la estructura de datos, la mayoría de las entrevistas de trabajo de programación también hacen preguntas sobre algoritmos, diseño, manipulación de bits y preguntas generales basadas en lógica, que describiré en esta sección.
Es importante que practiques estos conceptos porque a veces se vuelven difíciles de resolver en la entrevista real. Haberlos practicado antes no solo lo familiariza con ellos, sino que también le da más confianza para explicar la solución al entrevistador.
- ¿Cómo se implementa un algoritmo de clasificación de burbuja? (solución )
- ¿Cómo se implementa un algoritmo iterativo de ordenamiento rápido? ( solución )
- ¿Cómo implementar un algoritmo de ordenación por inserción? (solución )
- ¿Cómo se implementa un algoritmo de ordenamiento de mezcla? (solución )
- ¿Cómo se implementa un algoritmo de clasificación de cubo? (solución )
- ¿Cómo se implementa un algoritmo de clasificación de conteo? (solución )
- ¿Cómo se implementa un algoritmo de clasificación de radix? (solución )
- ¿Cómo intercambias dos números sin usar la tercera variable? (solución )
- ¿Cómo verificas si dos rectángulos se superponen entre sí? ( solución)
- ¿Cómo diseñas una máquina expendedora? ( solución )
Ahora estás listo para la entrevista de codificación
Estas son algunas de las preguntas más comunes fuera de la estructura de datos y los algoritmos que le ayudan a hacerlo realmente bien en su entrevista.
También he compartido muchas de estas preguntas en mi blog , por lo que si está realmente interesado, siempre puede ir allí y buscarlas.
Estas preguntas comunes de codificación, estructura de datos y algoritmoson las que debe conocer para entrevistar con éxito a cualquier empresa, grande o pequeña, para cualquier nivel de trabajo de programación.
Si está buscando un trabajo de programación o desarrollo de software en 2018, puede comenzar su preparación con esta lista de preguntas de codificación.
Esta lista proporciona buenos temas para preparar y también ayuda a evaluar su preparación para descubrir sus áreas de fortaleza y debilidad.
Un buen conocimiento de la estructura de datos y los algoritmos es importante para el éxito en la codificación de las entrevistas y es ahí donde debe enfocar la mayor parte de su atención.
Fuente original: hackernoon.