RONDA 1: EVALUACIÓN EN LÍNEA
Plataforma: cocubes.com
Duración: 75 minutos
Formato: 3 preguntas de codificación
Puntuación máxima: 10 puntos
Alrededor de 120 estudiantes se presentaron a esta prueba. Las preguntas fueron aleatorias y todos los estudiantes tenían conjuntos diferentes con algunas preguntas superpuestas.
1. Complete la siguiente función-
int findMax(TreeNode arr[], int size_of_array){ // code goes here }
Donde TreeNode es una estructura definida como:
struct TreeNode{ int feet; int inches; };
Se suponía que la función devolvería el valor máximo de TreeNode. Se suponía que esto se haría calculando (12*pies+pulgadas) para cada elemento. Constituía de 2 marcas.
2. Complete la siguiente función:
Node * findIntersection( Node* head1, Node*head2){ // code goes here }
Donde ‘Node’ es la estructura de un Node de lista enlazada definido como:
struct Node{ int data; struct Node *next; };
Se suponía que el código debía encontrar recursivamente la intersección entre 2 listas vinculadas (ya ordenadas) con la condición de que no se usara espacio adicional. Esta pregunta fue por 3 puntos.
Ejemplo:
Input- 1->2->14->15->26 2->10->14->16->18->26->32 Output- 2->14->26
3. Complete la siguiente función:
Node * alternateReverse( Node* head1, Node*head2){ // code goes here }
Donde ‘Node’ es la estructura de un Node de lista enlazada definido como:
struct Node{ int data; struct Node *next; };
alternateReverse() debe eliminar los Nodes de números pares de la lista vinculada y agregarlos al final en orden inverso. No se permitió espacio adicional. Fue por 5 marcos.
Ejemplo:
Input-1->2->3->4->5->6 Output-1->3->5->6->4->2 Input-1->2->3->4->5->6->7->8->9 Output-1->3->5->7->9->8->6->4->2
RONDA 2 – VUELO EN GRUPO
Alrededor de 40 estudiantes fueron preseleccionados para esta ronda. Esta fue una prueba basada en lápiz y papel. Los candidatos se dividieron aproximadamente en un grupo de 4-5 y un mentor estuvo a cargo de cada grupo. Se nos hizo una pregunta y se nos pidió que escribiéramos una solución de función en cualquier lenguaje de alto nivel (no se permitían lenguajes de secuencias de comandos como Ruby, PHP, Python). Nos asignaron un máximo de 45 minutos.
Pregunta : dadas dos arrays de caracteres (no strings) de la misma longitud y su longitud como parámetro de la función. Tenemos que encontrar si la primera cuerda es una rotación de la otra. No debemos utilizar ningún espacio adicional. La complejidad del tiempo puede ser cuadrática.
El mentor seguía viniendo a todos. Primero me preguntó qué estaba pensando. Le dije el enfoque con un ejemplo y luego escribí mi código. Los mentores estaban ayudando y motivando. Exigieron código solamente.
RONDA 3 – ENTREVISTA TÉCNICA
Alrededor de 25 estudiantes fueron seleccionados para esta ronda.
La entrevistadora se presentó y luego me pidió que le contara sobre mí. Luego me pidió que encontrara el prefijo común más largo de una serie de strings. Discutimos un enfoque y luego tuve que codificarlo. También me preguntó sobre la complejidad del tiempo y luego me pidió que lo optimizara. Le di otro enfoque y luego me pidió que lo codificara y le diera complejidad al tiempo. Optimizamos aún más la solución con un nuevo enfoque y también la codifiqué. El entrevistador quedó satisfecho.
https://www.geeksforgeeks.org/longest-common-prefix-set-1-word-by-word-matching/
Ella, al final, me preguntó si tenía alguna pregunta para ella. Le hice una pregunta. La entrevista se prolongó durante aproximadamente 1 hora y 10 minutos.
RONDA 4 – ENTREVISTA TÉCNICA
El entrevistador lo presentó y luego lo hice yo. Me hizo 2 preguntas-
- Compruebe si el árbol binario dado es BST o no. Se discutieron diferentes enfoques. Codificado uno de ellos.
https://www.geeksforgeeks.org/a-program-to-check-if-a-binary-tree-is-bst-or-not/ - Implementar usando usando stack. Discutimos enfoques y optimizamos las operaciones y luego las codificamos. https://www.geeksforgeeks.org/queue-using-stacks/
Me preguntó si tenía alguna pregunta para él. Yo también le pedí una. La entrevista se prolongó durante unos 45 minutos.
RONDA 5: ENTREVISTA DE RRHH
El entrevistador tiene más de 20 años de experiencia en Microsoft. Se presentó y me preguntó si tenía alguna pregunta para él. Luego discutimos los logros y los puestos de responsabilidad de mi currículum durante unos 20 minutos.
- Luego me pidió que implementara el juego Akinator. Discutimos cómo comenzaríamos, cuáles serían los problemas, cómo sería la base de datos, cómo elegir la siguiente pregunta, por qué elegirla, etc. La discusión se prolongó durante unos 30 minutos. Inicialmente mencionó que no había una respuesta correcta o incorrecta a la pregunta y que solo quería ver cómo funcionaba mi proceso de pensamiento. Ambos estábamos discutiendo y pensando en voz alta. Akinator
- Luego me preguntó un rompecabezas. Si tengo 10 pelotas y 1 pesa algo menos y tengo una balanza de peso, ¿cuál es el número mínimo de comparaciones necesarias para encontrar la “pelota mala”? Discutimos la solución para 10 bolas y luego para 9 bolas. Entonces se suponía que debía generalizar la solución.
La entrevista se prolongó durante aproximadamente 1 hora. Anunciaron el resultado al día siguiente y seleccionaron a 5 estudiantes.
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.
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