Experiencia de entrevista de Microsoft para pasantías – Part 4

Recientemente, Microsoft visitó nuestro campus para realizar prácticas. Tuvieron una ronda de codificación seguida de 3 entrevistas (2 técnicas y 1 de recursos humanos).

Prueba Online: Se realizó en mettl y tuvimos 90 minutos para resolver 3 preguntas. Las preguntas se barajaron para todos, pero fueron bastante fáciles.

  1. Dada una string, debemos devolver una string en la que cada carácter debe aumentarse en 3 unidades. 

    P.ej.

    adz -> dgc
    

    La a se convierte en d, la d se convierte en g y la z se convierte en c. El único truco aquí fue que solo teníamos que completar la función dada y pasaron la string como un puntero de carácter, por lo que necesita ver cómo atravesar una string representada como un puntero de carácter.

  2. Convierta una expresión infija en una expresión posfija.

  3. Dada una string en forma de num1+num2=num3 en la que uno de ellos es X, necesitamos encontrar el valor de X.

    P.ej. 

    Input : 5+X=7 
    Output: X= 2
    Input : 7+2=X
    Output: X=9
    

    Entonces, esta era básicamente una pregunta basada en la implementación y solo necesitábamos averiguar cuál de ellos era X y, en consecuencia, encontrar la respuesta.

48 estudiantes fueron seleccionados para las entrevistas.

Ronda 1: Me hicieron 3 preguntas en esta ronda. Las preguntas fueron bastante fáciles.

  1. Encuentre el elemento máximo y mínimo en cualquier punto de una pila. Me pidieron que lo codificara. Traté de mantener la entrevista interactiva diciéndole mi enfoque mientras escribía el código. Me pidieron que hiciera algunas pruebas y pareció satisfecho con mi enfoque.
  2. Invierte una string. Discutimos la cuestión de la pila durante unos 20 minutos y le dije que usaría una pila para revertirla, y no me pidió que la optimizara.
  3. Refleje un árbol binario dado. Primero le dije mi enfoque de que usaremos el recorrido posterior al pedido y luego me pidió que lo codificara.

Respondí todas las preguntas, por lo que estaba bastante seguro de que seré seleccionado para la próxima ronda.

Ronda 2: Me hicieron solo 2 preguntas en esta ronda. 

  1. Encuentre el diámetro de un árbol (número de Nodes en el camino más largo de un árbol). Había visto esta pregunta antes y conocía la solución, así que simplemente le dije mi enfoque e hicimos algunos ensayos con entradas de muestra antes de continuar con la siguiente pregunta.
  2. Dado un número N, necesitamos convertir N en 1 realizando un número mínimo de operaciones. Las operaciones permitidas son:
    • Restar 1 de un número.
    • Divide el número entre 2.
    • Divide el número entre 3.
      • P.ej.

    Input: 10 
    Output: 3
    10->9->3->1
    

    Entonces, al principio, estaba tratando de generalizar la solución tomando diferentes casos. El entrevistador me pidió que cambiara mi enfoque y pensé en un enfoque de Programación Dinámica. 

    C++

    #include <iostream>
    using namespace std;
      
    int main()
    {
        int n = 10;
          
        int dp[n + 1];
        dp[1] = 0;
        dp[2] = 1;
        dp[3] = 1;
        for(int i = 4; i <= n; i++)
        {
            dp[i] = dp[i - 1] + 1;
            if(i % 2 == 0) dp[i] = min(dp[i], 1 + dp[i / 2]);
            if(i % 3 == 0) dp[i] = min(dp[i], 1 + dp[i / 3]);
        }
        cout<<dp[n]<<endl;
    }

    Producción:

    3

Ronda 3 (HR): Entonces comenzó con preguntas como háblame de ti. Estaba preparado para esta pregunta y me concentré en mis habilidades de codificación. Para mí, fue una mezcla de recursos humanos y ronda técnica. 

Entonces, me hizo preguntas sobre la Lista doblemente enlazada. Dado un puntero a un Node aleatorio de una lista doblemente enlazada. Eliminar el Node.

Discutimos todos los casos extremos involucrados, y solo me pidió que lo codificara mentalmente y le dijera cada línea. Parecía satisfecho. Luego me preguntó por qué quería trabajar en Microsoft. Fue seguido por preguntas sobre OOPS y Hashing.

Me preguntó cuál era la implementación del hash en la vida real y cómo se implementa internamente. Pude responder esto pero no conocía los términos técnicos. Finalmente, me preguntó si tenía alguna pregunta para él. Nunca responda un no a esta pregunta, ya que demuestra que no está interesado en saber sobre la empresa.

Veredicto – Seleccionado

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 *