Me entrevistaron para el perfil de desarrollador de software en Druva, Pune, en agosto de 2018.
Ronda 1: prueba en línea
- MCQ relacionados con el sistema de archivos, Unix, redes informáticas
- Sección de depuración para depurar y corregir el código
- Sección de codificación con una pregunta para hacer en C++
Ronda 2: Entrevista telefónica
- Invertir k Nodes alternativos en una lista enlazada individualmente
- Simplifica la ruta del directorio en Unix
- ¿Cómo funciona HTTP?
- Diferencia entre Mutex y Semáforo
- ¿Qué es esperar() y notificar() en subprocesos múltiples?
Ronda 3: Entrevista telefónica
- Discusión del proyecto actual en la organización actual
- Suma máxima contigua en una array
- Suma máxima contigua en una array circular
- Cree un árbol binario para representar la suma de 2 árboles binarios
- Diferencia entre HTTP y HTTPs. ¿Cómo funciona HTTP?
- Diferencia entre multiprogramación y multiprocesamiento y sus ventajas entre sí
Ronda 4: Entrevista técnica F2F
Después de las rondas de entrevistas telefónicas, me llamaron a su oficina de Pune para continuar con el proceso de entrevistas.
- Háblame de ti
- Discusión sobre el proyecto actual en la organización actual
- ¿Qué son las API RESTful y sus principios?
- Diferencia entre GET y POST
- ¿Cuáles son los diferentes códigos de respuesta HTTP?
- Encuentra el número de días entre dos fechas dadas
- Encuentre la suma de Nodes en cada nivel de un árbol binario
- Supongamos que hay un flujo de correos electrónicos que estamos obteniendo de un servidor de correo. Necesitamos realizar algún procesamiento en estos correos electrónicos e imprimir el resultado en el mismo orden en que recibimos los correos electrónicos.
Si buscamos correos electrónicos en el orden M1, M2, M3, M4, nuestra salida debe estar en el mismo orden, es decir, P1, P2, P3, P4. Aquí P1 se refiere a la salida procesada de M1… y así sucesivamente.
Diseñe este sistema utilizando subprocesos múltiples.
Ronda 5: Entrevista técnica F2F con el gerente de contratación
- ¿Por qué buscas un cambio?
- Escribe una expresión en términos de f(n) para la siguiente función recursiva:
void
fun(
int
x)
{
int
i, b = 0;
for
(i = 1; i <= x; i++) {
b += i + fun(i - 1);
}
return
b;
}
- Cree una función de biblioteca para la siguiente funcionalidad:
Sea una string s = “geeksforgeeks”, s2 = “geeksforgeeks”
Deje que la función de biblioteca sea str_tokenize(s, token)
Sea token = “ee”
Ahora, cuando llamemos a str_tokenize(s, token) la primera vez, debe devolver «g» ( g eeksforgeeks)
La segunda vez, debe devolver «ksforg» ( g ee ksforg eeks)
La tercera vez, debe devolver «ks» ( g ee ksforg eeks )
Cada vez que volvamos a llamar a este método en string s, debería devolver nulo. Sin embargo, si llamamos a este método en la string s2, es decir, str_tokenize(s2, token), esto debería devolver «g» ya que no habíamos usado la string s2 anteriormente.
Además, no debe haber ningún cambio en la string original que se pasa a la función.
– Ejemplo:
string s1=”geeksforgeeks”, s2=”geeksforgeeks”;
token de string = «ee»;
cout<<str_tokenize(s1, token); //imprime “ee”
cout<<str_tokenize(s1, token); //imprime “ksforg”
cout<<str_tokenize(s2, token); //imprime “ee”
cout<<str_tokenize(s1, token); //imprime “ks”
cout<<str_tokenize(s1, token); //imprime
cout nulo<<s1; //imprime “geeksforgeeks”
cout<<s2; // imprime «geeksforgeeks» - Proporcione una solución multiproceso para el problema anterior
Ronda 6: Ronda F2F HR
- ¿Por qué buscas un cambio?
- Preguntas generales de recursos humanos
Publicación traducida automáticamente
Artículo escrito por kapil_punk y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA