La ronda 1:
Esta fue una prueba en línea. Consta de 5 secciones.
- Depuración : Tenemos que seleccionar un idioma antes de intentar esta sección. Había 7 preguntas. Esta sección fue fácil y las preguntas se referían principalmente a la clasificación, la eliminación de un elemento de una array, etc.
- Codificación: Había dos preguntas. Uno fue fácil ( https://www.geeksforgeeks.org/given-an-array-a-and-a-number-x-check-for-pair-in-a-with-sum-as-x/ ) y el otro era https://leetcode.com/discuss/interview-question/699973/goldman-sachs-oa-turnstile.
- Aptitud
- conductual
- Retroalimentación
La ronda 2:
El entrevistador fue SDE2. Se presentó y me pidió que me presentara. Luego saltó a las preguntas de codificación.
- Esta pregunta se basó en la clasificación topológica. Dado varios cursos en una universidad. Cada curso puede tener un curso de requisito previo que debe completar en cualquiera de los semestres anteriores si desea completar el curso actual en el semestre actual. Los cursos que tienen requisitos previos completados o los cursos que no tienen requisitos previos se pueden completar en un semestre. Devuelve el número mínimo de semestres para completar todos los cursos. Discutió el enfoque de búsqueda primero en amplitud y codificó el mismo. Luego preguntó sobre la complejidad del tiempo (las complejidades del tiempo y el espacio son muy importantes, aprenda a calcularlas y las compensaciones entre ellas)
- https://www.geeksforgeeks.org/rearrange-characters-string-no-two-adjacent/
No he resuelto esto antes. Discutido con él la intuición de que los caracteres de frecuencia máxima son los más importantes aquí y debemos separarlos primero. Seguí discutiendo y finalmente se me ocurrió la idea de resolverlo usando el montón (tome los 2 caracteres de frecuencia principales y colóquelos uno al lado del otro. Disminuya su frecuencia e insértelos nuevamente en el montón). Me pidió que lo codificara y luego me preguntó la complejidad del tiempo. Dije O (N log N) ya que estamos usando el montón (fue un error). Pero me pidió que lo pensara de nuevo. Después de un tiempo, dio una pista de que podemos tener un máximo de 26 caracteres en el montón. Luego le dije que la complejidad del tiempo es O (N) (para obtener la frecuencia de los caracteres) ya que las operaciones del montón son de tiempo O (1).
Luego me preguntó si tenía alguna pregunta para él. Le pregunté cómo sería el trabajo para un SDE1 y la carga de trabajo en la empresa.
Ronda 3:
Me presenté al entrevistador y luego saltó a las preguntas.
- https://www.geeksforgeeks.org/decode-string-recursively-encoded-count-followed-substring/ discutió el enfoque de pila. Luego me pidió que codificara y realizara un simulacro para un caso de prueba determinado. Me preguntó la complejidad del tiempo. Le dije que es O (N * valor máximo de k en la string).
- Esta fue una pregunta difícil. Hay N ciudades y M carreteras (bidireccionales) que las conectan. Dada la ciudad de inicio, la ciudad de finalización y un valor inicial del tanque (V). Atravesar cada borde costaría una unidad del valor del tanque. Sin embargo, pocas ciudades se llaman ciudades de combustible, podemos llenar el tanque a su valor inicial cuando lleguemos a ellas. Devuelve un valor booleano que representa si podemos llegar a la ciudad final desde la ciudad objetivo o no. No había resuelto este tipo de problema antes, le pedí que me diera 2 minutos para pensar y llegar con un enfoque. Después de eso, analicé el enfoque de búsqueda primero en anchura, en el que almacenaría el valor de la ciudad y el tanque en una cola y atravesaría de una manera convencional de búsqueda primero en anchura manteniendo un conjunto visitado en 2D. Luego me pidió que codificara. Después de eso, me mostró un caso de prueba en el que este enfoque fallaría. Luego discutí con él y le dije que podemos volver a visitar una ciudad si tenemos un valor de tanque mayor que la última vez. Pidió modificar el código.
Ronda 4:
El entrevistador era un ingeniero senior. Fue muy amable y me dijo que esta ronda consistirá en preguntas de codificación y comportamiento.
Me dio una string que es básicamente un documento HTML y me pidió que devolviera un valor booleano que representa si el documento HTML dado es válido o no. Luego se me ocurrió un enfoque de paréntesis válido (la apertura de una etiqueta HTML debe tener una etiqueta HTML de cierre respectiva junto a ella). Luego mostró un caso de prueba en el que hay una etiqueta de cuerpo incrustada dentro de la etiqueta de cabeza y dijo que incluso esto debería devolver falso. Entonces pedí algo de tiempo para pensar. Después de eso, dije que construyo un árbol o un gráfico que represente la estructura DOM adecuada que sea válida. Luego le dije que cada vez que encuentre una etiqueta, verificaré que su padre en el documento dado sea válido o no al buscar los Nodes adyacentes o el padre (en el caso de un árbol). Quedó impresionado con eso y pidió codificarlo. No pude completar el código a tiempo. Luego hizo algunas preguntas sobre mis proyectos y me preguntó cuál era la cosa más difícil que había encontrado mientras hacía mi proyecto, cómo lo manejé. Y me preguntó qué haría cuando me quedara atascado en un proyecto, si le pregunto a mis mentores/superiores o lo hago yo mismo.
Por último, me preguntó si tenía alguna pregunta para él. Hice las mismas preguntas 🙂
(muéstrales cuánto estás interesado en unirte a la empresa cada vez que tengas esta oportunidad)
Me ofrecieron una pasantía de 6 meses y FTE al final del proceso de contratación.
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