Factset visitó nuestra universidad para contratar para el puesto de ingeniero de software. La entrevista consistió en una ronda de codificación con lápiz y papel, seguida de rondas de entrevistas para los estudiantes seleccionados después de la ronda de codificación.
Ronda de codificación con lápiz y papel:
Había tres preguntas en esta ronda. Se nos pidió que escribiéramos el código de las preguntas en las hojas que nos proporcionaron, junto con la lógica aplicada y la complejidad del tiempo en el peor de los casos.
1) Dada una array de 0 y 1, para una celda que contiene 0, cambie todas las celdas de esa fila y columna a 0.
2) Dado un número X, encuentre el número más pequeño, cuyo producto es igual a X.
3) Dado una array, ordene la array en forma de onda.
29 personas fueron seleccionadas después de esta ronda para el proceso de entrevista. El proceso de entrevista consistió en 2 rondas técnicas y 1 de recursos humanos.
Ronda 1: (Técnica)
En esta ronda se hicieron tres preguntas, todas relacionadas con estructuras de datos y algoritmos. Me pidieron que diera una lógica eficiente para cada pregunta y que escribiera el pseudo. Las preguntas fueron:
1) Dada una array ordenada, encuentre el punto mágico, punto donde a[i]=i.
Sugerencias: Continúe con el enfoque de búsqueda binaria, considerando todos los casos límite y el caso de valor duplicado.
2) Dadas las 3 strings A, B y C, verifique si la C es un intercalado de A y B o no.
Consejos: comprenda la solución de DP, pero prepárese también con otra solución de fuerza bruta. Le di la solución de DP pero me preguntó si se podía hacer sin usar DP. Así que di una solución usando el concepto de fusión de clasificación por fusión, considerando los órdenes AB y BA. Nuevamente considere los casos límite.
Para referencia: https://www.geeksforgeeks.org/find-if-a-string-is-interleaved-of-two-other-strings-dp-33/
3) Dada una BST, actualice el valor de cada Node a la suma de todos los Nodes mayores que el Node en el BST. Sugerencias: Se puede implementar un método de 2 recorridos utilizando el recorrido en orden. Pero si se le pide que lo haga en un recorrido, use el recorrido en orden en orden inverso.
Para referencia:https://www.geeksforgeeks.org/transform-bst-sum-tree/
Ronda 2: (Técnica)
Primero me hicieron preguntas sobre mis pasantías. Luego se hicieron tres preguntas en esta ronda, nuevamente todas relacionadas con conceptos de estructuras de datos.
1) Se le otorgan algunos rangos de IP y un token asociado con cada rango de IP. Los rangos no se superponen pero no son continuos. Cuando un usuario solicita un token de una IP, encuentra el rango al que pertenece esta IP y devuelve el token correspondiente en respuesta. Me pidieron que creara una estructura para este problema que llevara a cabo la tarea.
Sugerencias: pregunte qué direcciones IP deben tenerse en cuenta, como confirmé que debo manejar la dirección IP de 10.0.0.0 a 10.0.0.255 (256 IP). Esto lo ayudará en su diseño. Luego, piense en las arrays y la lista de enlaces para almacenar los rangos. Para buscar, utilice la búsqueda binaria y busque las condiciones de contorno. También propuse una solución de árbol de búsqueda binaria donde cada Node almacena 2 valores, el valor inicial y final de un rango. La idea de usar esto era mantener los rangos ordenados y evitar el tiempo de clasificación adicional.
2) Dadas 2 arrays, que están ordenadas por filas y columnas, y un valor X, encuentre pares tomando 1 elemento de cada array de modo que la suma de los elementos del par sea igual a X.
Para referencia: https://www.geeksforgeeks.org /cuenta-pares-dos-ordenadas-arrays-dada-suma/
3)Dada una array desordenada, encuentre el número positivo faltante más pequeño. Pocas soluciones pueden ser ordenar la array, usar la técnica de conteo de frecuencia, etc. Pero si se requiere encontrarlo en el tiempo O (n) y el espacio O (1), entonces consulte el enlace.
Ronda 3: (Ronda de recursos humanos)
1) Cuéntame sobre ti. (Intereses, Pasatiempos, Actividades extracurriculares)
2) Dime tu fortaleza.
3) Si le pregunto a sus maestros y colegas acerca de usted, qué retroalimentación obtendrá.
4) Disponibilidad para mudarse y trabajar en cualquier nueva tecnología.
5) Idiomas y software de trabajo preferidos. (Con referencia a mi CV)
6) Qué sabe de la organización.
Después de que terminaron todas las entrevistas, se seleccionaron 10 personas, yo era una de ellas.
Algunos consejos generales: Ten confianza en lo que dices. Discuta sus soluciones con el entrevistador adecuadamente y trate de no entrar en pánico con solo escuchar la pregunta. Piense en las preguntas y el enfoque de forma lógica. Quieren ver cómo el candidato aborda las preguntas y qué tan bien puede aplicar los conceptos.
Al final, me gustaría agradecer a geeksforgeeks por proporcionar materiales tan relevantes para todos aquellos que los necesitan.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA