Experiencia de la entrevista de Microsoft | Conjunto 117 (fuera del campus)

Apliqué fuera del campus para el puesto de ingeniero de software de Microsoft a través de CoCubes. El procedimiento de selección involucró una ronda de codificación, un vuelo grupal seguido de 3 entrevistas.

Ronda 1
Esta ronda tenía 3 preguntas y estaba alojada en cocubes. Tuvimos 75 minutos para codificar.

1) Dada una array que contiene números enteros, el cero se considera un número no válido y el resto de los números son válidos. Si los dos números válidos más cercanos son iguales, entonces duplique el valor del primero y convierta el segundo número en 0. Por último, mueva todos los números válidos a la izquierda.
Por ejemplo:
Entrada: 2 4 5 0 0 5 4 8 6 0 6 8
Salida: 2 4 10 4 8 12 8 0 0 0 0 0

2) En una lista vinculada dada que contiene valores cero en algunos Nodes, calcule la suma de valores entre dos ceros y reemplace el valor cero en la lista vinculada por esa suma.
Por ejemplo: 7 0 4 5 6 0 1 1 se convertirá en 7 15 1 1.
Los ceros siempre están presentes en pares.

3) Dada una lista enlazada con cada Node que contiene coordenadas del plano x, y. Eliminar puntos medios.

Input:  (0,10)->(1,10)->(5,10)->(7,10)
                                  |
                                (7,5)->(20,5)->(40,5)
Output: Linked List should be changed to following
        (0,10)->(7,10)
                  |
                (7,5)->(40,5)

Round 2 Group fly
Había 2 preguntas que tenían que ser codificadas en papel.
1) Dada una oración. Imprima en vertical sin usar una cantidad equivalente de espacio extra.

Input:  "Welcome to Microsoft" 
Output : 
W  t   m
e   o    i
l         c
c        r	
o       o
m      s
e       o
         f 
         t

2) Dado un orden léxico arbitrario de carácter ” bsazc … ‘ng’ … ‘st’ … ”

Aquí ng y st deben considerarse como caracteres únicos.

Se le da esta orden y dos strings y tiene que generar

+1 es str1 str2

0 si str1 == str2

Ronda 3
El entrevistador fue genial. Me hizo sentir muy relajado. Me preguntó sobre mi proyecto, que era

sobre el aprendizaje por refuerzo. Respondí a sus consultas.

Luego me dio 2 preguntas simples para codificar. Los codifiqué a ambos fácilmente.

1) Imprime el recorrido del límite de un árbol binario.

2) Invertir una lista enlazada en conjuntos de k Nodes.
Me preguntó sobre casos de esquina y qué casos de prueba probaré al probar este código. Me preguntó si tenía alguna duda, le hice un par.

Ronda 4
Esta vez el entrevistador parecía estricto y me preguntó cómo me fue en mis rondas anteriores.

Respondí que estaban bien pero que parecía dudar de mí.

Luego me dio una pregunta para codificar.

Cuente todos los caminos posibles de arriba a la izquierda a abajo a la derecha en la array am X n.

Salté directamente a la solución dp que requería espacio O (m X n).

Luego dijo si sabía la pregunta, dije que sí, luego me dijo que debería haberle dicho que sabía la pregunta.

No pareció complacido con mi respuesta y me pidió que lo hiciera en menos espacio O(m)

Hice eso y luego agregó a la pregunta que algunos puntos de la cuadrícula contienen obstáculos y no podemos atravesarlos.

Resolví esto también. Luego me pidió que lo hiciera en el espacio O(1). Le dije que podemos hacerlo de forma recursiva pero que eso dispararía la complejidad del tiempo.

Dijo que lo codificara y le mostrara la respuesta. Lo hice, pero todavía no parecía satisfecho y me preguntó: «¿Estás seguro de que esto funcionará?»

Dije que haría un simulacro del código y dibujé un árbol de recurrencia para el mismo. Después de eso, dijo que se acabó el tiempo y que debería esperar afuera.

Ronda 5
Esta fue una ronda técnica + HR. Me hizo la pregunta genérica “Háblame de ti”.

Luego me preguntó sobre la función grep en Unix que busca una string en un conjunto de archivos.

Me preguntó qué enfoque usaría para buscar una string en un conjunto de archivos.

Le hablé de los árboles Tries y Ternary, también mencioné que Windows realiza una indexación que hace que la búsqueda sea más rápida y esto se almacena en la memoria secundaria.
luego me dijo que los intentos y los árboles ternarios se almacenan en la memoria principal y desaparecerán después de reiniciar el sistema, entonces, ¿cómo los almacenaré en la memoria secundaria?

Le hablé sobre el proceso de serialización y deserialización y le di un ejemplo de un árbol binario.

Parecía satisfecho y no me pidió que codificara.

Me gustaría agradecer a GeeksforGeeks por ayudarme en la preparación de la entrevista.

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

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Problemas de práctica relacionados

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 *