Expedia visitó nuestro campus en agosto para reclutar pasantes. El proceso comenzó con una ronda en línea seguida de 3 rondas de entrevistas.
La ronda en línea constaba de dos secciones: 2 preguntas de codificación y 10 preguntas técnicas de opción múltiple. Límite de tiempo: 90 minutos. Plataforma: HackerRank. Esta fue una ronda bastante fácil.
Q1. Se le da un número n. Tienes que decir cuántos números primos menores o iguales que n existen. por ej. si n=10, tu respuesta debería ser 4 ya que {2, 3, 5, 7} son números primos por debajo de 10.
Q2. Se le dan dos strings A y B. Tiene que dar salida a una string C, que se forma intercalando letras de A y B. Por ej. si A=”abc” y B=”efg”, la salida C debería ser “aebfcg”. Otro ex. A=”abc” B=”pqrst” luego C=”apbqcrst”.
Unos 25 estudiantes fueron seleccionados para la siguiente ronda.
Ronda 1: Entrevista Técnica 1
En primer lugar, me pidieron que me presentara brevemente. Luego me preguntaron sobre mis hobbies.
A continuación, el entrevistador me preguntó acerca de mi estructura de datos favorita. Dije listas enlazadas. Entonces ella me dio los siguientes problemas:
1.Escriba un programa para invertir una lista enlazada.
2. Escriba un programa para invertir la lista enlazada en grupos de tamaño dado ‘K’.
3. Se le da un número muy grande que tiene la forma de una lista enlazada de manera que cada dígito es un Node. por ej. 123 se escribe como 1–>2–>3. Ahora tienes que sumar 1 al número y devolver su cabeza. Recuerda que solo tienes una lista enlazada individualmente. Así que le dije que inicialmente podemos revertir la lista. Además, mantenemos un acarreo de variables y agregamos 1 al nuevo encabezado de la lista vinculada invertida (ese sería el último dígito del número). El nuevo valor del primer Node se convierte en (1+(valor inicial))%10 y el acarreo para ese Node tiene el valor (1+(valor inicial))/10. También para todos los demás Nodes, new value=((carry+(valor inicial))%10 y carry=(carry+(valor inicial))/10 .
por ej. si nos dan 129, entonces inicialmente 1–>2–>9 se convierte en 9–>2–>1. Primero sumando 1 a 9 nos da 10 entonces nuevo valor =10%10=0 y carry=10/10=1, así que la lista cambia a 0–>2–>1 con acarreo de 1er Node=1. Nuevo valor del 2.° Node=(1+2)%10=3 y acarreo=3/10=0., por lo que la lista cambia a 0–>3–>1 con acarreo del 2.° Node=0. Nuevo valor del 3er Node=(0+0)%10=0 y carry=0. por lo que la lista se convierte en 0–>3–>1. Al invertir la lista, obtenemos 1–>3–>0, que es una respuesta obligatoria.
Quedó satisfecha con mi solución y luego preguntó por cualquier caso especial para este problema. Pensé por un momento y respondí que si inicialmente recibimos un número con todos los 9 como dígitos, tendríamos que agregar un Node adicional (con valor 1) en la lista resultante para obtener la respuesta. por ej. nos dan 9–>9–>9 invirtiendo nos da 9–>9–>9 agregamos 1 a la cabeza junto con el método de acarreo que nos da 0–>0–>0 y 1 acarreo a la izquierda. Entonces agregamos un Node adicional con valor 1, es decir, 0–>0–>0–>1 y lo invertimos para obtener 1–>0–>0–>0.
Se seleccionaron 13 estudiantes más.
Ronda 2: Entrevista Técnica 2
De nuevo, me pidieron que me presentara brevemente. Luego me hicieron preguntas basadas en mi CV.
Después de eso vinieron las preguntas:
- Cómo diseñar un pequeño acortador de URL. Solución: https://www.geeksforgeeks.org/how-to-design-a-tiny-url-or-url-shortener/
- Dadas dos listas enlazadas, encuentre si se están fusionando en algún Node o no. Una solución que di fue que para la primera lista enlazada la atravesamos por completo y almacenamos las referencias en un hashset (Java). Ahora, mientras atravesamos la segunda lista vinculada, si encontramos un Node cuya referencia ya está almacenada en nuestro hashset, hemos encontrado el Node de fusión; de lo contrario, no existe ningún Node de fusión. Pero como este método usaba memoria, me pidieron que lo optimizara. Así que propuse otra solución: podemos encontrar la diferencia en los tamaños de las 2 listas (D), recorrer la lista más larga por Nodes D y luego recorrer simultáneamente ambas listas juntas, si en algún punto encontramos que list1.next==list2. a continuación, hemos encontrado el Node de fusión; de lo contrario, no existe tal Node.
- Encuentre la longitud de los 1 consecutivos más largos en representación binaria de un número. por ej. n=14 Representación binaria=1110 que debería darnos un resultado de 3. Consulte:https://www.geeksforgeeks.org/length-longest-consecutive-1s-binary-representation/
10 estudiantes fueron seleccionados para la ronda final.
Ronda 3: ronda de recursos humanos
Desafortunadamente, no fui seleccionado para la ronda de recursos humanos.
Pero las preguntas que se hicieron en la ronda de recursos humanos fueron bastante generales, como decirnos dónde se ve dentro de 5 años, por qué quiere unirse a nosotros, etc.
Finalmente 6 estudiantes fueron seleccionados.
Publicación traducida automáticamente
Artículo escrito por SameerCherwoo y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA