La entrevista se realizó en zoom y se utilizó codesignal para escribir códigos de trabajo para los problemas dados.
Ronda 1: En esta ronda se hicieron tres preguntas de programación (orden creciente de dificultad):
- Primer carácter que no se repite en una string muy grande con solo un recorrido de la string.
- https://www.geeksforgeeks.org/sliding-window-maximum-maximum-of-all-subarrays-of-size-k/. En este problema se esperaba una solución O(n).
- Se entrega un diccionario de palabras. Cualquier palabra se llama válida, si pertenece al diccionario. Se da una string. Debe encontrar todas las particiones de string de modo que cada partición sea una palabra válida. Por ej. sea el diccionario dado { man, ice, cream. go, icecream, mango } y la string que se le ha dado es mangoicecream, entonces todos los desgloses válidos son:
- Helado de Mango
- Helado de Mango
- Helado de Mango
- Helado de Mango
Ronda 2: La entrevista comenzó con la discusión de uno de mis proyectos en el que había usado subprocesos múltiples. Se hicieron varias otras preguntas, como la diferencia entre subprocesos y procesos, los escenarios en los que se debe usar cada uno de ellos y preguntas específicas sobre subprocesos de python (mi proyecto estaba en python). Después de esto, se hicieron dos preguntas de programación.
- https://www.geeksforgeeks.org/maximum-profit-by-buying-and-selling-a-share-at-most-twice/
- Se le proporciona un archivo de 100 GB que contiene números enteros de 64 bits sin firmar. Tienes que escribir un programa para ordenar estos enteros y copiarlo en un archivo diferente. Sin embargo, la memoria RAM utilizable es de solo 2 GB. Le dije un enfoque basado en la fusión de k arrays ordenadas y el uso de archivos intermedios. El entrevistador quedó satisfecho con el enfoque.
Ronda 3: esta entrevista fue con uno de los directores que tenía más de 20 patentes a su nombre. Así que estaba un poco nervioso al principio. El entrevistador dio un código C y se me pidió que predijera su salida. Me equivoqué y di una respuesta incorrecta. Luego, el entrevistador me dijo que compilara y ejecutara el programa para verificar la salida y me di cuenta de que había cometido un error. El entrevistador me pidió que identificara mi error y lo corrigiera. Afortunadamente hice eso. Después de eso, se dio la siguiente pregunta de programación:
- Dada una string que contiene solo B y W (bolas negras y blancas), debe llevar todas las bolas blancas al comienzo de la string. por ejemplo, si la string es «BWWB», la salida debería ser «WWBB». La única operación permitida es el intercambio de elementos. No puede sobrescribir ninguno de los caracteres. Además, la complejidad temporal esperada era O(n) y la complejidad espacial esperada era O(1). Di un enfoque basado en dos punteros. Me pidieron codificar la solución y también generar casos de prueba para la misma.
Ronda 4: esta entrevista se basó completamente en los sistemas operativos. Me pidieron que diseñara una estructura de datos para almacenar información sobre procesos. Se esperaba que explicara cada cosa que consideré en la estructura de datos, incluso los tipos de datos que usé. Se hicieron preguntas relacionadas como tiempo de ráfaga, tiempo de espera, etc. Al entrevistador también le interesó saber cómo se calcula el tiempo de ráfaga. (No se puede calcular el tiempo de ráfaga de un proceso. Estudiamos el tiempo de ráfaga en la programación solo con fines de evaluación comparativa).
Recibí la oferta después de una semana!
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