FactSet visitó nuestro campus en la primera semana de agosto. Recibí una oferta de trabajo de FactSet. Entonces, creo que soy elegible para escribir experiencia de entrevista.
Perfil : Ingeniero de Software
tipo: solo trabajo
Rondas totales: 3/4
Hubo una presentación a cargo de los funcionarios de FactSet. Siguió por primera ronda – prueba técnica escrita.
Prueba técnica:
La primera prueba fue una prueba de codificación escrita. Tenía 3 preguntas y 75 min. Se suponía que debíamos escribir la función lógica principal en cada pregunta.
- Pregunta 1 [20 puntos] : Tiene 2 columnas, la primera es el número de transacción y la segunda tiene la lista de artículos comprados en esa transacción. Se supone que debe encontrar todos los pares de artículos que se compraron juntos con la máxima frecuencia. Escriba la complejidad de tiempo y espacio de su solución.
Input : Transactions | Items Purchased -------------------------------- 1 A, B, C, D 2 A, B, D 3 A, B 4 B, C, D 5 B, D 6 A, B, C 7 A, B, D Output : (A, B), (B, D) Explanation: Pairs Frequency ----------------------------------------- {A,B} 5 {Transaction : 1, 2, 3, 6, 7} {B,D} 5 {Transaction : 1, 2, 4, 5, 7} {A,C} 2 {Transaction : 1, 6} {B,C} 3 {Transaction : 1, 4, 6} {A,D} 3 {Transaction : 1, 2, 7} {C,D} 2 {Transaction : 1, 4}
[enfoque de solución: use HashMap y no olvide marcar «AB» y «BA» serán la misma clave.]
- Pregunta 2 [10 puntos] : Se le da una array de n elementos y un número entero k. Imprime el primer elemento positivo de cada ventana de tamaño k . Si el elemento positivo no existe, imprima «0». La complejidad de tiempo máxima debe ser O(n) y la complejidad de espacio debe ser O(k).
Ejemplo:
Input : [2, 3, -5, 6, -2, -1, 0, 8, -3, -5, -9, -4, -3, 1], k=4 Output : [ 2, 3, 6, 6, 8, 8, 8, 8, 0, 0, 1 ]
- Pregunta 3 [10 puntos]: ¿Se supone que debe encontrar si se le dan dos rutas que lo llevarán al mismo directorio en el comando de Unix o no? Se le proporciona la ruta del directorio actual y otras 2 rutas. Como podrias saber ‘.’ indica el directorio actual, ‘..’ indica el directorio principal.
Current Directory | Path1 | Path2 | Result ------------------------------------------------------------------- /usr/java/codes/ /codes/abc/../prg1/... ../prg2/.. true /usr/java/codes/ /codes/abc/../prg1/ ../prg2/../prg1/ true /usr/java/codes/ /codes/abc/.. ../prg2/../loop/ false
[enfoque de solución – 1: use el generador de strings y agregue/recorte la string en consecuencia y compare las strings]
[enfoque de solución – 2: use 2 pilas una para cada ruta, primero inserte el directorio actual en ambas pilas. Ahora itere para cada ruta y haga lo siguiente: if ‘.’ – no hacer nada, si ‘..’ luego hacer estallar, de lo contrario empujar. Luego compare ambos caminos.]
[enfoque de solución – 3: Usar lista doblemente enlazada. Primero cree dos listas doblemente enlazadas para cada ruta con los Nodes del directorio actual. Luego itere a través de cada ruta y agregue/atraviese los Nodes en consecuencia y, por último, compare.]
-> Un total de 29 estudiantes fueron seleccionados después de la primera prueba.
Entrevista Técnica – 1 :
Allí donde 5-6 entrevistas ocurriendo simultáneamente. Algunos tenían solo un entrevistador y otros tenían 2. Las preguntas de la entrevista se basaron totalmente en la estructura de datos y las habilidades algorítmicas. Estaban analizando cómo te acercas a la solución y qué tan eficiente puedes hacerla. A cada candidato se le hicieron 2-3 preguntas y duró casi una hora para todos.
Mi entrevista duró casi 1 hora y 15 minutos. Comenzó con algunas preguntas simples en los currículums como mencioné react.js y node.js, entonces preguntó dónde usaste estas tecnologías, cuánto conocimiento tengo de estas tecnologías, ¿qué te gusta más backend o frontend? También preguntó por la prueba. Luego me hizo las siguientes 2 preguntas.
- Pregunta 1: Fue igual para todos los candidatos. Crear pila usando BST [Árbol de búsqueda binaria]. Le di un enfoque para crear un Node con el campo ‘rango’, el rango es una especie de índice, el número entero I donde el elemento dado es el elemento I-ésimo para ser empujado. Crear BST por rango. Entonces, me preguntó la complejidad de las operaciones push, pop, top e print. Una vez más me preguntó si puedo hacerlo mejor. Entonces, di un enfoque usando un árbol de búsqueda binaria balanceada. Luego me pidió que escribiera el código para empujar y hacer estallar. Algún otro candidato dio enfoque de mantener el puntero al Node agregado previamente.
- Pregunta 2: Se le proporciona un archivo de registro. El archivo de registro generalmente tiene un formato fijo. En el que hay dos campos, CÓDIGO DE ERROR: TEXTO DE ERROR. El archivo contiene 1 millón de líneas. Se supone que debe encontrar el número de línea que tiene la primera aparición del código de error igual que el código de error de la última línea del archivo. La idea aquí es usar seek() y luego una búsqueda simple. Luego me pidió que escribiera el código para el mismo. Pero no estaba al tanto de la sintaxis de seek(). Entonces, le di el código restante. El entrevistador me dijo cómo usar seek() y también me preguntó sobre la complejidad de tiempo y espacio del código. La intención principal detrás de hacer esta pregunta fue que si conozco los comandos de Linux/Unix, la entrada/salida de archivos, la división de strings y los tipos de datos primitivos.
-> Otras preguntas formuladas en la misma ronda:
- Pregunta 1: se le proporciona una string de origen (llamémosla S), otras dos strings (llamémosla T & W) y el número entero K. Se supone que debe reemplazar la aparición Kth de T en S con W. Si K<0, cuente Kth ocurrencia desde el final. Si K es mayor que la ocurrencia total de T, entonces K= (K % de ocurrencia total de T). Una trampa aquí fue que se suponía que debía desarrollar una solución para la string W que puede no tener la misma longitud que T.
- Pregunta 2: Te dan tres strings s1, s2 y s3. s3 está hecho de los caracteres de s1 y s2. Debe verificar si el orden de los caracteres de s1 y s2 ocurre en el mismo orden en que están en la string original. Aquí hay un ejemplo para hacer la pregunta más clara:
Input : Output : [s3 is input, output is only true/false]
-> 16 estudiantes fueron seleccionados para la segunda ronda.
Entrevista Técnica – 2 :
Mi segunda ronda técnica se dividió en 2 partes, técnica y recursos humanos. Duró casi 1 h y 45 min. Pero la mayoría de los candidatos solo tenían técnicas y duraron casi 1hr. Se hicieron preguntas técnicas para verificar el conocimiento de las estructuras de datos. Solo 2-3 entrevistadores le preguntaron al candidato sobre los proyectos mencionados en el currículum. A algunos candidatos se les hicieron preguntas sobre punteros.
Preguntas técnicas:
- Pregunta 1: Hoy vemos muchas páginas web que se pueden cargar en muchos idiomas. Por lo tanto, se suponía que debía proporcionar un mecanismo que cargara directamente la página web en el idioma local según el lugar desde donde se solicitó. Me dieron una tabla que tiene esta información: rango de direcciones IP, código de país correspondiente e idioma asociado con el país. Le dije que una vez que verificamos en qué rango se encuentra la solicitud de IP, podemos obtener el idioma y cargarlo en consecuencia. Entonces, el entrevistador preguntó cómo hará que esa búsqueda sea eficiente. Luego, tómese un tiempo para pensar y pregunte qué estructura de datos usará. Di la solución usando un árbol de búsqueda binario balanceado.
- Pregunta 2: se le da una array de strings. Si el primer carácter de cualquier string coincide con el último carácter de cualquier otra string, dibuje un arco entre esos caracteres. Dibuja todos los arcos posibles y comprueba si forman un ciclo. Una vez más, la primera pregunta del entrevistador fue: ¿qué estructura de datos utilizará? Di la solución usando un gráfico dirigido.
Entrada: [rey, engranaje, rata, grifo, olla, hablar] Salida: verdadero
Entrada: [rey, engranaje, rata, toque, hablar] Salida: falso
Luego, el entrevistador revisó mi currículum nuevamente e hizo preguntas generales como se mencionó anteriormente, luego hizo preguntas sobre mis logros.
Luego comenzó HR Interview.
Preguntas de la entrevista de recursos humanos:
- Sobre antecedentes familiares
- JEE Rank y discusión sobre por qué esta universidad
- ¿Qué pasa si no consigues este trabajo? ¿Qué pasa si no obtienes ningún trabajo/pasantía de esta universidad?
- ¿Tus padres quieren que vayas a la posgrado?
- ¿Quieres ir a la posgrado? ¿por qué?
- ¿Qué 5 cosas buscas antes de unirte a cualquier organización/empresa?
- ¿Qué ubicación preferirás?
- ¿Es emocionante para ti vivir lejos de tu ciudad natal y mudarte a un lugar nuevo? ¿por qué?
Luego me preguntó si tengo alguna consulta.
Algunos de los candidatos a los que solo se les hicieron preguntas técnicas en la segunda ronda tuvieron una ronda más que fue puramente de recursos humanos y duró un mínimo de 30 minutos.
Luego se ofreció trabajo a 8 candidatos.
Consejos: Trabaja más en tu estructura de datos y habilidades de algoritmo. Sea confiado y honesto.
¡Espero eso ayude!
Todo lo mejor para la entrevista 🙂
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