Apliqué a Microsoft a través del programa de referencia para una pasantía como ingeniero de desarrollo de software. Todos los candidatos que solicitaron a través de referencias fueron invitados a una prueba de codificación en línea en la plataforma co-cubes después de 2 a 3 semanas.
Ronda de codificación en línea (en co-cubos): –
Se dieron tres preguntas en 75 minutos de tiempo para resolver. Por cierto, resolver en la plataforma co-cubes es una pesadilla, no se completa automáticamente, ni siquiera puede copiar, pegar o probar su código manualmente.
Pregunta 1 (2 puntos) : era comparar dos strings o agregar dos strings (cada carácter de una string era del 0 al 9).
Pregunta 2 (3 – Puntos) : Encuentre el subarreglo más grande con elementos distintos en él.
https://www.geeksforgeeks.org/subarrays-distinct-elements/ (Aquí se pide calcular la suma)
Pregunta 3 (5 puntos) : escriba una función que acepte la raíz del árbol binario como argumento y devuelva la suma de todos los Nodes de hoja a la profundidad máxima desde la raíz.
https://www.geeksforgeeks.org/sum-leaf-nodes-minimum-level/
Esta pregunta es todo lo contrario, pero la idea central sigue siendo la misma.
Ej. 1
……../ \
…….2 3
……/ \
…..2 1
Respuesta :- 2 + 1 = 3
La prueba del sistema de soluciones se realizó después de que usted envió las 3 preguntas y no se le muestra el resultado (si las 3 fueron correctas o no). Sin embargo, le dieron un caso de prueba muy débil en co-cubos para verificar su solución, que mostró fácilmente un falso positivo.
Tienes que resolver LAS 3 preguntas para calificar esta ronda y tratar de escribir la solución más óptima posible.
Todos los estudiantes que calificaron en la ronda de codificación fueron invitados a Microsoft Gurgaon para continuar con el proceso de entrevistas.
Ronda de vuelo en grupo: –
Aparecieron alrededor de 60-65 estudiantes para el grupo – ronda de vuelo. Fue una prueba de lápiz y papel. Se nos proporcionó una sola pregunta, para ser resuelta en 45 minutos.
Pregunta: dado un árbol binario, conviértalo en un árbol n-ario con las siguientes condiciones: cada Node en el mismo nivel está conectado entre sí de izquierda a derecha en una sola string y todo el nivel está conectado a la raíz R.
Ej. 1 R
………../ \ / | \
………2 3 -> 1 2 4
……./ / \ | \
…..4 5 6 3 5
………………………………….\
…………………………………..6
Una parte de esta pregunta es algo similar a https://www.geeksforgeeks.org/connect-nodes-at-same-level/
y en la siguiente parte tuvimos que definir una estructura de datos (esto era importante) para nuestra salida árbol y conéctese en consecuencia.
Tenemos que escribir todo el programa desde la entrada hasta la salida, junto con algunos casos de prueba y ejecutar en seco su solución (querían probar sus habilidades de prueba de programas para casos de esquina). También esperaban una solución optimizada. Se le permite utilizar cualquier idioma.
Nota: – Trate de escribir un código lo más limpio posible y use nombres significativos de variables y funciones y siga hablando sobre diferentes enfoques con su mentor asignado.
Lo resolví usando el recorrido de orden de cola y nivel con la estructura de salida definida de la siguiente manera:
struct Node{
struct Node* root;
vector<struct Node*> hijo;
valor int;
};
Cerca de 20 a 25 estudiantes fueron seleccionados para la próxima ronda.
Ronda 1 (Técnica) : –
Pregunta 1: dado un árbol binario, devuelve la raíz del subárbol BST más grande que contiene.
https://www.geeksforgeeks.org/find-the-largest-subtree-in-a-tree-that-is-also-a-bst/
Tuve que codificarlo completamente en papel desde la entrada hasta la salida y luego explicar todo el código.
Escriba algunos casos de prueba (incluidos algunos casos extremos) y ejecute en seco mi solución.
El entrevistador primero revisó mi currículum. Luego me pidió que explicara uno de mis proyectos (específicamente qué parte hice).
Luego comenzó a hacerme preguntas sobre el sistema operativo (preguntaba sobre programación, cambio de contexto, PCB, memoria virtual), quedó muy impresionado de mí porque di casi todas las respuestas correctas.
La entrevista duró alrededor de 45 minutos.
Ronda 2 (Técnica) :-
Pregunta 1: dado un árbol binario, imprima su vista izquierda.
https://www.geeksforgeeks.org/print-left-view-binary-tree/
Tuve que codificar su función leftViewUtil.
Pregunta 2 : WAP para rotar una array por k elementos.
https://www.geeksforgeeks.org/array-rotación/
Solo tenía que explicar mi lógica, le di dos enfoques, el primero fue con O (k) espacio adicional (Método 1) y el segundo fue el Método 3 del enlace anterior. Estaba satisfecho con mi lógica, pero quería pensar en otro enfoque, así que me dio una pista de algo que hacer con la inversión de la array para que el código tuviera 3 líneas.
Después de esta pista, pude darle el enfoque que quería.
https://www.geeksforgeeks.org/program-for-array-rotation-continued-reversal-algorithm/
Ronda 3 :-
Mi entrevista fue tomada por una persona mayor. Me pidió que me presentara y luego procedió a preguntarme sobre mis intereses (relacionados con CS). A lo largo de la entrevista, estuvo hablando conmigo discutiendo diferentes cosas y haciendo preguntas. Me preguntó cuál era mi problema favorito. Le describí un problema de programación dinámica. Luego me hizo muchas preguntas relacionadas con el sistema operativo (problema de la sección crítica, administración de memoria).
Después de eso, me preguntó si tenía alguna pregunta para él. Hice algunas preguntas y se acabó.
El resultado final se declaró en media hora y fui seleccionado. Junto conmigo se seleccionaron 4-5 estudiantes más.
El proceso total de la entrevista se llevó a cabo entre las 9 am y las 6 pm aproximadamente.
CONSEJO: –
Es necesario un concepto claro de la estructura de datos y el algoritmo, junto con el conocimiento de los conceptos de OOPS, SO y DBMS también es importante. Los proyectos también son necesarios, y tener algunos proyectos interesantes seguramente atrae la curiosidad del entrevistador.
No entre en pánico si está atascado o no puede responder. Pruebe desde un enfoque muy básico desde la fuerza bruta hasta la solución real y siga hablando con su entrevistador discutiendo varios enfoques, es la parte más importante.
GFG es imprescindible para poder desempeñarse bien en las entrevistas.
Este artículo es una contribución de Shubham Kothari .
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