Experiencia de entrevista de Amazon para SDE-1 (1 año de experiencia)

Tuve esta oportunidad durante el tiempo de COVID y, por lo tanto, todas las rondas de entrevistas se realizaron en Amazon Chime (videollamada) y tuve que escribir el código en LiveCode (un IDE compartido) que era visible tanto para mí como para el entrevistador.

Primera ronda (Prueba en línea)

  • Hay una array que contiene 0,1 y 9. Debe comenzar desde la parte superior izquierda y llegar a la celda que contiene ‘9’. Solo hay una celda de este tipo que contiene 9. Puede pasar a la celda que contiene ‘0’. Una celda que contiene ‘1’ es un obstáculo y tienes un salto que puedes usar para cruzar el obstáculo. Necesitamos encontrar el número mínimo de pasos necesarios para llegar a la celda que contiene ‘9’ desde la parte superior izquierda de la array. (Apliqué BFS y funcionó para mí)
  • Hay una lista de pedidos de Amazon, cada uno de ellos representado por una string. Cada una de las strings tenía el formato ‘XXX YYY ZZZ’. Necesitamos clasificarlos en función de algunas condiciones de prioridad.
    Solución: utilicé la función de clasificación de C++ STL y escribí una función de comparación personalizada)

Segunda ronda:

  • Dada una string de entrada y un número q de operaciones que deben realizarse en ella. Hay tres tipos de operaciones.
    1 – invertir la string
    2 1 a – insertar el carácter de entrada (aquí ‘a’) al principio de la string actual
    2 2 a – insertar el carácter de entrada (aquí ‘a’) al final de la string actual

    Solución: en primer lugar, le di el enfoque usando una lista doblemente enlazada, pero él quería usar la misma variable de string para realizar operaciones en lugar de hacer una DLL. Como la inserción en el frente de la string es una operación costosa, podemos mantener las inserciones frontales en un vector y cuando se completan todas las operaciones, podemos hacer una string con esos caracteres y agregar un prefijo a la string actual en que se han realizado todas las operaciones inversas e inserciones en la parte posterior.

    También debemos mantener una ‘bandera’ que se alterna en función de la operación inversa (tan pronto como haya una operación de tipo ‘1’ (inversa), cambie el valor de la bandera)

    * Caso 1: bandera == falso
         – operación frontal: debe agregarse al vector_frontal
         – inserciones posteriores: inserte el carácter en la parte posterior de la string original (concatenación)

    * Caso 2: indicador == verdadero
         – operación frontal: inserte el carácter en la parte posterior de la string original (concatenación)
         – inserciones posteriores: debe agregarse al vector frontal

    Además, antes de generar la string final, debe verificar si la bandera es verdadera significa que la string está invertida, por lo que, en función de eso, debe generar la string de salida (me perdí este caso, cuando el entrevistador señaló que lo incorporé).

    Ejemplo de ejecución en seco:

    abc -> string de entrada (digamos ‘s’)
    5 -> número de operaciones    

    1 -> s = abc ( vector_frontal {}, bandera= verdadero)  
    2 2 a -> s = abc (vector_frontal {a}, bandera= verdadero)
    2 1 b -> s = abcb (vector_frontal {a}, bandera= verdadero )
    1 -> s = abcb ( vector_frontal {a}, indicador= falso)
    2 1 x -> s = abcb (vector_frontal {x,a}, indicador= falso)

    String de inserción frontal: xa
    Salida (string final): xaabcb
     

  • https://www.geeksforgeeks.org/find-the-farthest-smaller-number-in-the-right-side/

Esta ronda duró alrededor de 1,25 horas y resolví ambas preguntas.

Tercera ronda:

Esta ronda duró alrededor de 1 hora y resolví ambas preguntas.

Cuarta Ronda (Gerente de Contratación):

  • Comenzó con una introducción y luego pasó a una discusión detallada sobre el proyecto con mi empleador actual que incluía
    • ¿Cuál fue mi papel?
    • ¿Sobre qué componentes trabajé?
    • ¿Cómo se probaron los componentes?
    • ¿Cuál era el tamaño de la base de usuarios?
    • ¿Cómo se informaron y manejaron los errores?
  • Preguntas de comportamiento:
    • Cuéntame una situación en la que hayas trabajado con un plazo ajustado
    • Cuéntame una situación en la que tomaste una decisión
    • Cuénteme una situación en la que trabajó para un requisito del cliente y lo entregó dentro del plazo.

Esta ronda duró alrededor de 1,25 horas y para las preguntas de comportamiento debe seguir el método STAR (S: situación, T: tarea, A: acción, R: resultado).

Quinta ronda (Gerente sénior de desarrollo):

  • Comenzó con una introducción, una breve discusión sobre el proyecto con el empleador actual
  • Anagrama ( https://www.geeksforgeeks.org/check-whether-two-strings-are-anagram-of-each-other/ ). Resolví la pregunta rápidamente, pero hubo algunos casos excepcionales que se pueden manejar y esto reducirá la complejidad para ellos. A medida que el entrevistador señaló los casos, incorporé los cambios en el código y quedó satisfecho.
  • Preguntas de comportamiento:
    • Cuéntame una situación en la que hayas trabajado con un plazo ajustado
    • Cuéntame una situación en la que saliste de tu zona de confort para aprender y entregaste algo.

Esta ronda duró alrededor de 45 minutos.

Veredicto:   Seleccionado 🙂

Puntas:

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

Deja una respuesta

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