Experiencia en entrevistas de contratación fuera del campus de Microsoft, obtuve esta oportunidad a través del programa de participación de Microsoft 2021.
Ronda 1 (Ronda de codificación sobre codility): había dos preguntas para resolver en 120 minutos. Las preguntas eran de nivel medio-difícil.
- Esta pregunta se basó en BFS de múltiples fuentes. Se proporcionó un gráfico y una serie de hospitales, ahora para todos los Nodes no hospitalarios, necesitamos encontrar el tiempo máximo que una ambulancia puede tardar en llegar a ellos. (medio-duro)
- Esta pregunta se basó en Graph DFS + DP. No recuerdo la pregunta exactamente, pero era para aplicar el principio de inclusión-exclusión en los Nodes gráficos usando DFS. ( difícil )
Pude resolver ambas preguntas y pasé todos los casos de prueba dados en 60 minutos. Se mencionó que el código también se juzgaría después de la presentación de casos de prueba ocultos.
Ronda 2 (Entrevista Ronda 1 en equipos): Esta ronda duró unos 45 minutos. Me pidieron 2 problemas de codificación.
- Zero Subarray sum , antes pidió un valor bool, luego me pidió que devolviera los índices iniciales y finales de todos esos subarreglos.
- Se proporciona un árbol binario, el valor del Node puede ser 0 o 1. Ahora, pasar de la raíz a una hoja forma un número decimal en representación binaria. Me pidieron que encontrara la suma de todos esos números decimales posibles. Todos esos números posibles serían iguales al número de Nodes hoja presentes en el árbol binario.
Pude resolver el primero rápidamente, luego el segundo con algunas pistas del entrevistador. Me pidieron que escribiera código en mi editor favorito y ejecutara el código para algunos casos de prueba. El entrevistador quedó satisfecho al final y me preguntó si tenía alguna pregunta para él. En media hora recibí la llamada para mi segunda ronda.
Ronda 3 (Entrevista Ronda 2 en equipos): Esta ronda duró unos 50 minutos. Me pidieron 2 problemas de codificación.
- Se me pidió cortar un problema de varilla , primero expliqué los subproblemas superpuestos y los optimicé usando DP. Me pidieron que ejecutara el código y verificara muchos casos de prueba (incluidos los casos extremos). El entrevistador quedó satisfecho con el código, luego dijo que tenemos tiempo, así que resolvamos otra pregunta.
- Pregunta de string DP + Rabin Karp Hashing. Dado un vector de strings y una string de destino, encuentre si un subconjunto de la array de strings podría concatenarse a la string de destino, si hay más de una forma posible, devuelva la que tiene elementos mínimos en el subconjunto. Primero le expliqué cómo el hashing ayudaría a comparar y luego superponer los subproblemas al hacer la string de destino. Luego me pidieron que escribiera el código para el mismo.
El entrevistador se mostró feliz después de que resolví ambas preguntas, así que estaba bastante seguro de que calificaría para la siguiente ronda.
Ronda 4 (Entrevista Ronda 3 en Equipos): Esta ronda se llevó a cabo después de 4 días de las dos rondas anteriores.
- La entrevista comenzó con mi presentación, se me pidió que informara sobre mi pasantía y experiencia en proyectos. Luego me preguntó los problemas potenciales que ocurrirían si mi proyecto (desarrollo web) fuera utilizado por millones de usuarios. Tomó la dirección del diseño del sistema, discutimos cómo disminuir el tiempo de latencia en detalle.
- Luego, después de una discusión de 20 minutos, me preguntó un problema de codificación para codificar rápidamente. El problema se basó en una string. Una string es válida si todos los caracteres tienen la misma frecuencia o, como máximo, dos frecuencias diferentes. Ejemplo: aabb es válido, aabbccdd es válido, aabbccd también es válido, pero aabcddd no es válido. La pregunta era bastante simple, pero me tomó tiempo entenderla. Escribí el código y luego el entrevistador me pidió que lo ejecutara en algunos casos de prueba.
En la tarde del mismo día, recibí el correo que me habían seleccionado. Estaba tan feliz y comencé a celebrar.
Consejos para la ronda de codificación :
- Practique preguntas basadas en gráficos y sus variaciones. Intente escribir declaraciones de impresión/recorte junto con su código, esto lo ayuda a depurar más rápido.
- Intente comentar su código también y con nombres de funciones significativos.
- Asegúrese de comprobar si hay casos extremos (muy diabólicos).
Consejos para entrevistas –
- Escuche la pregunta atentamente y aclare la pregunta primero, antes de solicitar su solución.
- Si está atascado, discuta lo que sabe y dónde enfrenta problemas, esto ayuda al entrevistador a proporcionar una pista dirigida.
- Después de discutir su enfoque, no olvide explicar las complejidades de tiempo y espacio.
- Ten confianza en tus respuestas y piensa en voz alta.
Espero que esto ayude !!
Publicación traducida automáticamente
Artículo escrito por abhinavgkp8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA