Experiencia de entrevista de Adobe | MTS-1

1. Prueba de evaluación en línea (HackerRank)

una. 15 preguntas de aptitud (15 minutos)

b. 5 programas de entrada-salida (15 min)

C. 2 preguntas de programación (45 min)

2. Ronda Presencial 1 – Ronda Técnica (1 Hora)

una. Discusión sobre los proyectos, sus esquemas de arquitectura, etc.

b. Ordene una array que contenga 0 y 1 en un solo paso, O (n) tiempo y O (1) complejidad espacial.

C. Agregue 1 al número almacenado en una forma de lista enlazada individualmente. Cada dígito está representado por un solo Node. El encabezado de la lista enlazada apunta al dígito más significativo del número. Hazlo en un solo recorrido.

d. ¿Cuántas formas diferentes de formar un número binario de N bits tal que no ocurran dos 1 consecutivos juntos en forma de N bits? Por ejemplo, N = 3, entonces 101, 010, 000, 001, 100 son válidos pero 110, 111, 011 no son válidos. Por lo tanto, la salida es 5. Escribí el programa, pero el entrevistador me dijo que también hay una fórmula matemática para esto.

mi. Productor: problema del consumidor (pseudocódigo para este problema), semáforo y exclusión mutua, sección crítica, etc. Algunas preguntas sobre espera() y señal() como cuándo será el punto muerto en diferentes casos, etc.

3. Ronda Presencial 2 – Ronda Técnica (1 Hora)

Discusión sobre un proyecto que el entrevistador convirtió inteligentemente en el problema e hizo muchas preguntas de seguimiento sobre el mismo problema.

Problema: ¿cómo representará una imagen en la memoria? (es decir, por una array con cada celda como un píxel).

Entonces, considere que hay una imagen monocromática representada como su array, ¿cómo dibujará un segmento de línea en su misma array mediante programación? (lo que significa llenar celdas con un número desde el cual pasará ese segmento de línea).

Recuerde que un segmento de línea puede ser una línea alineada al eje X o al eje Y y puede ser una línea no alineada. Escribe un programa para eso.

Supuse que los puntos finales del segmento de línea son números enteros en el espacio 2D y escribí el código en consecuencia, pero el entrevistador me preguntó si este código funcionaría si los puntos finales son flotantes/dobles y discutí eso para convertirlo en un solución generalizada.

Después de esto, el entrevistador preguntó algunos casos límite como qué pasa si los puntos finales del segmento de línea no están dentro de la array o el segmento de línea está parcialmente dentro de la array.

Teniendo en cuenta que el segmento de línea no está alineado con ningún eje, ¿cómo encontrará el punto donde el segmento de línea entra/sale por primera vez de la array si el segmento de línea no está limitado por la array?

4. Ronda Presencial 3 – Ronda Técnica (1 Hora)

una. Algunos problemas con los punteros como la diferencia entre punteros válidos o no, problemas al pasar por referencia a una función, etc.

b. ¿Qué sucede cuando declaramos un objeto de una clase y le asignamos memoria?

C. Cuestiones sobre herencia, polimorfismo, función virtual, etc.

d. Escriba un programa para implementar una tabla hash con las siguientes API:

i. inserción vacía (clave int, valor int),
ii. void delete (tecla int),
iii. búsqueda int (tecla int) y
iv. int getRecentElement() (Elemento reciente es el elemento que ha sido tocado por insert() o search(), devuelve su clave).

   Todas las API anteriores deberían funcionar en O(1). Suponiendo que no haya claves duplicadas.

mi. Busque un elemento en una array donde cada par de elementos consecutivos difieran exactamente en 1, es decir, |A[i] – A[i+1]| = 1 y |A[i-1] – A[i]| = 1.

F. Dados N subprocesos e instancias únicas de N tipos diferentes de recursos, ¿cómo asignará los recursos a los subprocesos de modo que no haya puntos muertos y el tiempo de espera sea mínimo? Suponga que cada subproceso puede aparecer en cualquier momento y solicitar cualquier cantidad de recursos. No sabes cuándo va a salir un hilo.

5. Ronda presencial 4 – Ronda de directores (1 hora)

una. Discusión del proyecto.

b. ¿Cómo identificará si el software que va a instalar en su PC es un malware? Proporcione algunas formas de identificar antes de la instalación y después de la instalación de ese software.

C. ¿Cómo identificará si este software ha eliminado/agregado algunos archivos a su sistema de archivos? Dije que podemos comparar la estructura de árbol del sistema de archivos antes y después de instalar el software.

d. Dados dos archivos que contienen una lista de nombres de archivos presentes antes y después de la instalación. ¿Cómo descubrirá la diferencia entre los dos archivos? Escribir pseudocódigo para fileDifference(File A, File B).

mi. Puede moverse hacia arriba (?), hacia la derecha (?) y hacia arriba a la derecha (?), ¿de cuántas maneras puede llegar a la esquina superior derecha desde la esquina inferior izquierda de una array N x N? La representación matricial es –

Presenté mi enfoque usando programación dinámica, pero el entrevistador me dijo que derivara una fórmula matemática (que es el Número de Delannoy, http://mathworld.wolfram.com/DelannoyNumber.html ).

6. Ronda 5 en el sitio: ronda de gerentes (1 hora)

una. Programa para convertir un número en formato Word en inglés (moneda india). Por ejemplo: 1, 23, 500 a «Un lakh veintitrés mil quinientos», 100 a «Cien», etc.

https://www.geeksforgeeks.org/convert-number-to-words/

b. Programa para comprobar si dos árboles son una imagen especular entre sí o no.

Veredicto: Seleccionado

Recursos para la preparación de entrevistas

1. Algoritmos y estructuras de datos

una. https://www.geeksforgeeks.org/data-structures/
b. https://leetcode.com/problemset/all/?listId=wpwgkgt (Problemas de entrevista clásicos)
c. Libro Cracking The Coding Interview – por Gayle (Explica cómo resolver
problemas paso a paso en la entrevista)

2. Fundamentos de la informática

una. https://www.geeksforgeeks.org/last-minute-notes-operating-systems/
b. https://www.geeksforgeeks.org/last-minute-notes-computer-network/
c. https://www.geeksforgeeks.org/last-minute-notes-dbms/

3. Conceptos de programación orientada a objetos

una. https://www.geeksforgeeks.org/oops-object-oriented-design/
b. https://www.geeksforgeeks.org/c-plus-plus/

Publicación traducida automáticamente

Artículo escrito por Aditya Goel y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *