Experiencia de la entrevista de Microsoft | Set 91 (2 años de experiencia para IDC)

Este es el foro principal donde hice toda mi preparación. ¡Muchas gracias GeeksForGeeks! Aquí está retribuyendo.

Recibí una llamada del equipo de Bing en IDC. Tengo 2 años de experiencia laboral después de un BTech en CSE. Tuve 5 entrevistas en total, como se describe a continuación.

1) La primera fue una ronda fly/ no fly. Al principio, hubo una discusión sobre mi experiencia laboral anterior, y el entrevistador me hizo algunas preguntas técnicas y de diseño aquí y allá. Luego me pidieron que escribiera código para encontrar el subarreglo más pequeño para ordenar que clasificaría un arreglo completo. La respuesta está disponible en https://www.geeksforgeeks.org/minimum-length-unsorted-subarray-sorting-which-makes-the-complete-array-sorted/. Tuve que escribir código optimizado para esto.
El segundo fue hacer un diagrama ER para un escenario de muebles. La parte importante aquí es que el Material de un mueble puede ser una clase separada, en lugar de una propiedad en muebles como cama, silla, mesa. Entonces, el Material puede tener propiedades asociadas como IsFlammable, IsWaterResistant, etc.

2) Solo tengo una pregunta en esta entrevista que me pidieron que resolviera en la pizarra. La pregunta era agregar un dígito a un número que está representado por una lista enlazada, donde cada Node es un dígito del número. La restricción aquí era que la lista enlazada no podía modificarse, excepto los dígitos que debían modificarse en la respuesta y el número podía ser infinitamente largo. Así que tenías que evitar el problema del desbordamiento de memoria. Por lo tanto, no hay recursión, ni pila, ni copia de la lista enlazada, ni cambios en la lista enlazada original, como sugieren las soluciones en geeksforgeeks. Para realizar un seguimiento del acarreo que se agregará al dígito anterior de forma iterativa, básicamente debe realizar un seguimiento del dígito anterior al último 9 consecutivo que precede al último dígito. Por ejemplo, en 9719938996, este sería el 4, el dígito de la derecha, es decir, 8. Entonces, ahora en un solo paso, puede averiguar tal posición de 9 (si corresponde) y también el último dígito. Entonces los dígitos requeridos se pueden cambiar fácilmente.

3) En esta ronda, el entrevistador abrió una aplicación de consola en su PC y me pidió que codificara allí. Creo que en realidad estaba tomando nota del tiempo que me tomó escribir el código y si se compiló por primera vez o no. Presté más atención a la precisión del código que al tiempo que tomé. Las preguntas que me hicieron son:
Comprobar si un número Ni es potencia de otro número X. Luego hablamos del caso en el que X era 2. Para este caso, discutimos cómo se podría hacer esto comprobando los bits.
Compruebe si dos árboles binarios son idénticos. También tuve que inicializarlo y ejecutarlo con un caso de prueba. Hubo una discusión sobre la optimización inteligente de línea después de completar el código.
Rotar una array una distancia determinada. Puede encontrar una respuesta similar donde la distancia para rotar es 1 en https://www.geeksforgeeks.org/rotate-matrix-elements/
Luego hubo una discusión sobre el diseño del portal en línea de una biblioteca. Después de que le di una arquitectura básica, me preguntó cómo implementaría la función de búsqueda. Sugerí hacerlo con el nombre del libro, el autor, el ISBN, etc. Me preguntó cómo hacerlo según el contenido del libro. Le dije que almacenaría etiquetas para cada libro que podrían usarse durante la búsqueda. Le gustó la idea, pero me preguntó cómo haría una búsqueda de texto adecuada. Le conté sobre el uso de una tabla hash y blobs. Tal vez estaba buscando intentos, pero como no estaba muy familiarizado con ellos, los evité. Pareció satisfecho y terminó la entrevista.

4) Me pidió que me presentara, hablara de mis proyectos y del mayor reto técnico al que me había enfrentado. Luego me pidió que escribiera un código en papel para la función de LinkedIn donde se nos muestra cuál es la profundidad de conexión de dos personas. La solución fue una versión del algoritmo de ruta más corta para un gráfico. Me pidió que optimizara mi respuesta para O(1) espacio adicional (además del espacio de la estructura del gráfico).
El siguiente scanario incluía una serie de preguntas. Debía dar el esquema informal de Cliente, Artículo, Pedido para un minorista en línea como Amazon. Además de las relaciones de clave externa, estaba interesado en cómo almacenaría los pedidos porque cada pedido de compra puede tener varios artículos comprados. La respuesta fue tener una tabla relacional como ItemizedOrder que almacenaba asignaciones de los ID de pedidos y artículos. Luego me pidió que escribiera una consulta para obtener todos los clientes que no habían comprado un determinado artículo en una fecha determinada. Luego dijo que para cualquier artículo como un libro, la empresa tendrá que obtener sus libros de muchos vendedores de libros que tendrán diferentes esquemas y formas de almacenar la información de los libros. Me pidió que diseñara un sistema que permitiera manejar tal variación. Le di un portal o un servicio web como punto final donde los diferentes proveedores podían cargar sus datos. Luego, mi servicio web tendría un motor de reglas que mapearía diferentes esquemas, asignaría valores predeterminados siempre que fuera posible para valores faltantes como Subtítulo, ignoraría valores faltantes de campos sin importancia como NoOfPages, o devolvería mensajes de error para elementos que tenían datos obligatorios insuficientes, como Precio. Este motor de reglas luego almacenaría la entrada procesada en nuestra base de datos en nuestro esquema.

5) Esto fue con un tipo muy mayor, pero fue más una formalidad. El entrevistador me dijo que fui seleccionado en los primeros 10 minutos y luego solo estaba tratando de analizar mi trabajo y preferencias para un equipo adecuado y establecer mis expectativas. Respondió algunas preguntas que le hice y terminó la entrevista en media hora.

En general, me hicieron 2 preguntas comunes cada vez: describa su experiencia laboral anterior y por qué desea unirse a Bing. No entendí el enfoque de la mayoría de las preguntas al instante, pero hablé de mis pensamientos en voz alta. Todos me guiaron cuando me quedé atascado y me orientaron hacia posibles optimizaciones. Dos veces, también me dieron ejemplos de escenarios que mi código no cubría. Como sabía que estaba entrevistando para Bing, les hice preguntas relevantes a los entrevistadores después de cada ronda. Cada entrevista estaba programada para 1 hora, aunque la tercera se alargó a 1,5 horas y la última fue bastante corta. Salvo la primera entrevista, el resultado de las demás es colectivo. Entonces, incluso si no te va muy bien en uno, si puedes manejar los otros decentemente, serás contratado. ¡Mis mejores deseos!

Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *