Uber inició un viaje fuera del campus en la primera semana de junio. Obtuve una referencia a través de un pase de la universidad. Después de una semana, obtuve el enlace de prueba para la ronda de codificación en línea.
Ronda de codificación en línea (60 minutos): hubo cuatro preguntas de codificación (algunos estudiantes recibieron tres preguntas). La prueba se realizó en la plataforma CodeSignal.
- Dada una array A de N elementos, puede realizar la siguiente operación cualquier número de veces (posiblemente 0): puede reemplazar cualquier número entero de la array con un número entero. Su tarea es imprimir las operaciones mínimas necesarias para que los elementos sean continuos.
Restricciones: 1 <= N <= 1e6, 1 <= A[i] <= 1e9
Example: Input: 4 7 11 6 9 Output: 2 Explaination: We can replace 11 with 5 and 9 with 8, resulting in the array [4, 7, 8, 6, 5] which contains all the elements from 4 to 8.
- Dadas N cuerdas y una array A que representa la longitud de las cuerdas. Puedes dividir la cuerda en varias cuerdas. Muestra la longitud máxima de cuerda que puedes lograr con la cuenta de al menos K de las cuerdas dadas.
Example: Input: 4 2//N K 1 3 4 9 // Array A Output: 4 Explanation: We can cut the rope with length 9 as (4,4,1). So, total count of ropes with length 4 equals to 3 >= K i.e. 2 This the maximum length you can achieve with the count of at least 2
- Dado un piso de tamaño N x M, tiene un robot de limpieza que puede limpiar una baldosa que visita. Inicialmente, todas las fichas están sucias y el robot está en (0,0). El robot tiene una batería de tamaño K y puede moverse en las cuatro direcciones. Por cada movimiento que hace el robot, su batería se reduce en 1. El piso contiene obstáculos en algunos mosaicos representados por 1 en la array dada y el robot no puede moverse en estos mosaicos. Muestra el número máximo de baldosas que el robot puede limpiar para que tenga que volver a su posición inicial antes de quedarse sin batería.
Restricciones: 1 <= N x M <= 100, 1 <= K <= 12, 0 <= Floor[i][j] <= 1
Example: Input: 4 4 6 // N M K 0 0 0 0 0 1 0 1 0 0 0 0 Output: 4 Explaination: The robot can choose this path (0,0)-> (1,0) -> (2,0) -> (2,1) and return to the initial position using the same path. Robot cannot choose the other path because it will run out of battery before reaching the initial position. So, total number of distinct tiles visited and cleaned = 4.
- Dada una array A que consta de N elementos, debe realizar las siguientes operaciones: – eliminar p elementos de la array – eliminar q grupos de elementos consecutivos de tamaño 2 – eliminar r grupos de elementos consecutivos de tamaño 3 Después de realizar las operaciones, el Las arrays izquierda y derecha formadas se fusionan. Muestra la suma máxima posible después de realizar las operaciones.
Restricción: 1 <= N <= 1e5, 1 <= p+2*q+3*r <= N
Example: Input: 7 1 1 1 //N p q r 4 5 2 1 3 6 7 Output: 7 Explaination: For p=1, you can remove 1 from the array -> [4,5,2,3,6,7] For q=1, you can remove 2 and 3 which is group of consecutive elements of size 2 -> [4,5,6,7] For r=1, you can remove 4,5 and 6 which is group of consecutive elements of size 3 -> [7] The maximum possible sum of array equals to 7. (Note: There are other ways to remove elements which will give the same result)
Pude resolver los primeros tres problemas por completo y el último parcialmente (7/8 casos de prueba). Recibí un correo después de unos días sobre el programa de entrevistas y el número de rondas. Solo se seleccionaron 95 de 3,00,000 solicitantes.
Fue un proceso de reclutamiento de un día que consistió en dos rondas técnicas y una ronda de recursos humanos. Cada ronda era una ronda de eliminación.
Ronda técnica 1 (45 minutos): El entrevistador fue muy amable y servicial durante toda la entrevista. Se presentó y me pidió que hiciera lo mismo. Luego pasó rápidamente a la cuestión de la codificación. La entrevista se realizó en la plataforma CodeSignal.
- Dada una string codificada, debe generar la string decodificada. La string codificada tendrá el siguiente formato: 1[ac2[de]], 2[a2[b3]], 3[a3[b23c1[d]k2[x]]]. Básicamente, una string consta de letras, números y corchetes. Antes de cada corchete, habrá una secuencia de números. La secuencia de números representa cuántas veces deben repetirse en la string resultante. Ver ejemplo para una mejor comprensión.
Example: Input: 1[ac2[de]] Output: acdede Explanation: 2[de] means "de" should be repeated two times and 1[ac....] means whatever was the resultant string between the square brackets should be repeated only once. Input: 2[a4[b]c13d2[e]] Output: abbbbc13deeabbbbc13dee Explanation: As you can see, the decoded string may also contain digits because those digits are not followed by a square bracket in the encoded string. Input: 1[a2[b1[c11[d]]]] Output: abcdddddddddddbcddddddddddd Explaination: This example shows that there can be multiple digits before a square bracket(11 in this case)
Pude resolver la pregunta usando recursividad con un poco de depuración. Luego, el entrevistador me pidió que ejecutara mi código y lo probara en algunos casos de prueba. (La mejor solución para este problema es usar la pila)
Después de una hora, recibí una llamada para la siguiente ronda de entrevistas.
Ronda técnica 2 (45 minutos): hubo dos entrevistadores para esta ronda y se basó en el diseño de la clase. La entrevista se realizó nuevamente en la plataforma CodeSignal. Después de la introducción, comenzaron con la pregunta.
- Diseñe una tabla de clasificación que admita las siguientes funcionalidades: 1. addUser(): la capacidad de agregar nuevos usuarios con el nombre del atributo, el correo electrónico y la puntuación. La puntuación inicial debe ser cero. 2. updateScore(): la capacidad de actualizar la puntuación de un usuario con el valor dado. 3. getRank(): la capacidad de obtener el rango de un usuario determinado. Si dos usuarios tienen la misma puntuación, entonces el usuario que se agregó antes tendrá una mejor clasificación (es decir, un valor más bajo). 4. getFirstK(): la capacidad de obtener la lista de usuarios con un rango inferior a K.
Creé dos clases y di el enfoque de fuerza bruta para todas las funciones. Luego, los entrevistadores me indicaron la complejidad temporal esperada para cada una de las funciones. Después de algún tiempo y sugerencias, les dije un enfoque que usa BST y también modifiqué las clases que creé. Discutimos el enfoque en detalle y la complejidad del tiempo para cada función. Después de esto, teníamos poco tiempo, por lo que los entrevistadores me dijeron que asumiera ciertas funciones y completara mi código.
Después de 15 minutos, recibí una llamada para la ronda de recursos humanos.
Ronda de recursos humanos (1 hora): esta fue una ronda de recursos humanos muy larga. Estas son algunas de las preguntas:
- Presentarte
- Explique su proyecto de fin de carrera (FYP)
- ¿Qué aprendiste de este proyecto?
- ¿Cómo explicará su proyecto a un profano?
- ¿Cuáles son los casos de uso de su proyecto?
- Algunas preguntas relacionadas con el proyecto
- ¿Cuáles son los problemas enfrentados durante el proyecto y cómo los resolvieron?
- Háblame de tu pasantía.
- ¿Cuáles son las cosas que no te gustaron de la pasantía?
- ¿Qué aprendiste de tu pasantía?
- Explícame en detalle tu proyecto de pasantía.
- ¿Cuáles son las tecnologías que usó en su proyecto?
- Algunas preguntas relacionadas con el proyecto de pasantía.
- ¿Recuerdas las preguntas de tu ronda en línea? Explícame la primera pregunta?
- ¿Qué esperas de una empresa?
- ¿Cuál es tu objetivo?
- ¿Cuál fue la tercera pregunta y cómo la resolviste?
Después de esto, me hizo una pregunta de codificación.
- Dada una string S que contiene dígitos. Encuentre la cantidad de direcciones IP válidas que se pueden formar a partir de la string dada.
Restricciones: 1 <= longitud (S) <= 12
Example: Input: 11111111111 Output: 4 Explaination: These are the valid IP addresses 111.111.111.11 111.111.11.111 11.111.111.111 111.11.111.111
-
Primero expliqué mi solución y luego la implementé. Me dio algunos casos de prueba para ejecutar y obtuve respuestas correctas.
Después de esto, el entrevistador me preguntó si tenía alguna pregunta para él. Pregunté cómo Uber se vio afectado por la pandemia. Después de su respuesta, la entrevista terminó.
Recibí una llamada después de dos días que me seleccionaron.
Veredicto: ¡Seleccionado!
Todo lo mejor para todos!
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