PayPal visitó nuestro campus para reclutar estudiantes y el perfil de trabajo es el de ingeniero de software. Hubo 4 rondas, incluida la primera ronda de prueba.
La ronda 1:
Esta es una prueba realizada en hackerrank y se habilitaron todos los idiomas.
- Solo había dos preguntas de codificación y eran:
- Se le daría una string y debe encontrar la frecuencia de la substring más frecuente en esa string y existen algunas restricciones adicionales, como que la longitud de la substring debe estar en el rango dado de minLength y maxLength y el número de letras únicas en esa substring no debe exceder maxUnique. La terminología con la que se planteó la pregunta no fue tan sencilla. De hecho, me tomó un tiempo entender completamente la pregunta. Esto se puede resolver fácilmente usando hashing.
Eg: I/P: abababab O/P: 4 (since ab is the most frequent substring with frequency 4)
- Se le daría una string y debe encontrar el producto máximo de dos subsecuencias que no se superponen. En realidad, la declaración del problema que se dio allí era muy engañosa y no pude resolverlo allí. Más tarde, algunos de mis amigos que lo resolvieron me dijeron que tenemos que dividir la cuerda en dos partes y tenemos que encontrar de forma independiente las subsecuencias palindrómicas en esas dos partes.
Eg: I/P: arcpacqabmaobanb O/P: 25 (since acaca and babab are the two subsequences and their lengths are 5 each so the max product is 5 * 5 = 25)
Más de 600 estudiantes dieron la prueba escrita y 28 estudiantes fueron preseleccionados para la siguiente ronda. yo era uno de ellos
La ronda 2:
- El entrevistador me pidió que me presentara y me presenté como de dónde vengo y de qué rama soy y mi amor por la codificación, etc. Pareció estar satisfecho con mi presentación.
- Después hubo una breve discusión sobre los proyectos que he realizado.
Más tarde, el entrevistador me preguntó cómo almacenaría la dirección de un millón de personas. Le di un enfoque NoSql limpio y pareció satisfecho con eso.
- Me darán un árbol de búsqueda binaria y tengo que validarlo.
Inmediatamente le dije que ya había resuelto esta pregunta al descifrar el libro de entrevistas de codificación. Me dio una sonrisa y me dijo que no había problema y me pidió que escribiera el código en el que escribí el código. - Se me dará una string y tengo que imprimir la cantidad de anagramas posibles con esa string.
Simplemente está imprimiendo el recuento de diferentes permutaciones posibles con esa string y es factorial simple (n) dividido por el producto de factoriales (duplicados). Escribí el código. - Me preguntó por qué no pude resolver la segunda pregunta en la primera ronda. Le dije que entendí mal la pregunta y luego me preguntó si podía resolverlo ahora o no. Dije que sí y escribí el código para eso.
Entonces me dijo vamos a resolver unos problemas algorítmicos y le dije que sí.
Dijo todo lo mejor para tus próximas rondas. Me sentí muy feliz después de escuchar esto directamente de él.
No sé cuántos estudiantes fueron eliminados en esta ronda.
Ronda – 3:
- Una vez más, estaba esta pregunta de presentación y lo hice de manera asombrosa, tal como lo hice en la primera ronda. Parecía feliz. Ahora nuevamente hubo una discusión sobre mis proyectos y esta vez hizo preguntas aún más profundas como cómo implementaste esto, etc.
- Después de eso, preguntó mi enfoque de las preguntas que he escrito en la ronda: 2. Las expliqué.
- Luego me pidió que escribiera un algoritmo de búsqueda binaria y escribí el código para eso.
- Luego me pidió que invirtiera una lista vinculada. Como no tengo mucha práctica con las listas enlazadas, me tomé un tiempo para encontrar la solución normal y escribí el código para eso.
- Luego dio otro problema para resolver. Habrá una lista de arrays que contiene algunos caracteres y hay otra array que tiene los índices que deben eliminarse de la primera lista de arrays.
Eg: I/P: ['l', 'a', 'p', 't', 'o', 'p'], [3, 1, 2, 5] O/P: ['l', 'o']
Inmediatamente le dije que me encontré con esta situación en uno de mis proyectos y le sonrió y me pidió que escribiera el código. Simplemente clasifiqué la segunda array y usé una variable de contador para realizar un seguimiento de cuántos índices se eliminaron hasta el momento y pareció impresionado.
- Luego me dio el rompecabezas de los 25 caballos . Aunque no puedo resolverlo por completo, le di 2 enfoques. Luego me dijo que la respuesta es la combinación de estos dos enfoques y me sentí feliz.
La entrevista terminó después de esto y no sé cuántas personas fueron eliminadas después de esta ronda.
Ronda – 4:
- Nuevamente hubo esta pregunta de preséntese. En ese momento me convertí en un maestro en presentarme :p Esta vez había dos personas en el panel y estoy un poco asustado por eso. Un chico solo me observa sin preguntar nada y no tenía ninguna sonrisa en su rostro. Empecé a tensarme por culpa de ese tipo.
- El otro entrevistador me dio el problema del equilibrador de carga.
- Me darían 3 contenedores y tendré una lista que contiene los pesos y tuve que empacar los pesos en esos 3 contenedores de modo que la diferencia en la suma de sus pesos sea mínima para los 3 contenedores.
Inicialmente di un enfoque de montón mínimo en el que siempre agregaré el próximo peso al Node que contiene menos peso. Me pidió que lo implementara en la pizarra. Lo hice pero el equilibrio no es muy perfecto.
Entonces le dije que podemos agregar 2 o 3 pesos y pegarlos para formar un grupo y de manera similar podemos hacer 3 grupos. Aún así, el balance no fue muy bueno.
Nuevamente le dije que podemos clasificar los pesos y luego podemos llenar los contenedores con los que no estaba satisfecho porque al clasificarse la solución se está volviendo subóptima.
Finalmente, le dije que la mejor solución es generar todas las combinaciones posibles usando programación dinámica y encontrar la mejor de ellas. Pareció satisfecho con esta solución y me preguntó la complejidad del tiempo para eso. Dije 3 ^ n ya que no hay subproblemas superpuestos en esto. Finalmente dijo que estaba bien y dijo que este es un problema NP-difícil :p y que no hay ninguna solución polinomial para esto.
- Ahora me pidieron que extrajera nombres de un párrafo dado sin usar PNL o aprendizaje automático ni nada por el estilo. La pregunta me pareció muy abstracta. Me dio esta pregunta para probar si me doy por vencido fácilmente o no y pensé durante un tiempo y le di 2 o 3 enfoques. Aunque no extraen los nombres muy perfectamente, funcionarían hasta cierto punto y parecía satisfecho con eso.
- Ahora el otro tipo empezó a hacerme preguntas. Me preguntó cómo la tabla hash puede lograr la búsqueda en O (1) y no sabía la respuesta en ese momento. Entonces le dije eso y él me dijo cómo es capaz de lograr eso.
- A continuación, me pidió que eliminara los duplicados de una lista vinculada y lo hice. A continuación, me dijo que la lista enlazada está ordenada ahora y que quería que hiciera cambios en ese código en lugar de escribir de nuevo y lo hice.
Finalmente, me dio una sonrisa y dijo que la entrevista había terminado y ambos salimos juntos de esa habitación. Finalmente, 7 personas fueron seleccionadas y estoy muy feliz de ser una de ellas. Gracias frikis para frikis 🙂
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