Experiencia en entrevistas de Goldman Sachs (1,8 años de experiencia)

Fui contactado por Recursos Humanos en LinkedIn

Ronda 1 (Ronda de codificación en línea): plataforma Hackerrank 1 hora 30 min

  1. Dada una string de entrada, escriba una función que devuelva la string codificada de longitud de ejecución para la string de entrada.
    For example, 
    if the input string is “wwwwaaadexxxxxx”, 
    then the function should
    return “w4a3d1e1x6”
    Expected Time Complexity: O(n) 
  2. Deje que 1 represente ‘A’, 2 represente ‘B’, etc. Dada una secuencia de dígitos, cuente el número de decodificación posible de la secuencia de dígitos dada.
    Input:  
    digits[] = "121" 
    Output: 3   
    The possible decoding's are
     "ABA", "AU", "LA"
    Input: 
    digits[] = "1234" 
    Output: 3   
    The possible decoding's are
     "ABCD", "LCD", "AWD"
    Expected Time Complexity: O(n) 

Ronda 2 (ronda de codificación F2F): CoderPad con Goldman Sachs Developer

  1. Dada una serie de strings de strings, agrupe los anagramas. Puede devolver la respuesta en cualquier orden.

    Un anagrama es una palabra o frase formada al reorganizar las letras de una palabra o frase diferente, generalmente usando todas las letras originales exactamente una vez.

    Input: 
    strs = ["eat","tea","tan","ate",
    "nat","bat"]
    Output: 
    [["bat"],["nat","tan"],
    ["ate","eat","tea"]]
    Expected Time Complexity: O(n) 
  2. Dado un archivo que contiene datos del nombre del estudiante y las calificaciones obtenidas por él/ella en 3 materias. La tarea es encontrar la lista de estudiantes que tienen el puntaje promedio máximo.

    Si más de un estudiante tiene el puntaje promedio máximo, imprímalos según el orden en el archivo.

    Input: 
    file[] = {“Shrikanth”, “20”, “30”, 
    “10”, “Ram”, “100”, “50”, “10”}  
    Output: 
    Ram 53  

    Las puntuaciones medias de Shrikanth y Ram son 20 y 53 respectivamente. Entonces Ram tiene el puntaje promedio máximo de 53.

    Complejidad de tiempo esperada: O(n)

Ronda 3 (Ronda de codificación F2F en Zoom): CoderPad con dos desarrolladores de Goldman Sachs

  1. Dada una lista enlazada, escribe una función para invertir cada k Node (donde k es una entrada a la función).
    Input: 
    1->2->3->4->5->6->7->8->NULL, K = 3  
    Output: 
    3->2->1->6->5->4->8->7->NULL 
    Expected Time Complexity: O(n) 
    Auxiliary Space: O(n/k). 
  2. Dado un árbol de búsqueda binaria (BST) y un número entero positivo k, encuentre el k-ésimo elemento más grande en el árbol de búsqueda binaria.
  3. Diseñe una estructura de datos SpecialStack que admita todas las operaciones de pila como push(), pop(), isEmpty(), isFull() y una operación adicional getMin() que debería devolver el elemento mínimo de SpecialStack. Todas estas operaciones de SpecialStack deben ser O(1). Para implementar SpecialStack, solo debe usar la estructura de datos Stack estándar y ninguna otra estructura de datos como arrays, listas, etc.
    Example:  
    Consider the following
    SpecialStack
    16  --> TOP
    15
    29
    19
    18
    When getMin() is called it
    should return 15, 

Ronda 4 (Ronda de codificación F2F en Zoom): CoderPad con dos desarrolladores de Goldman Sachs

  1. Dada una array no ordenada arr[0..n-1] de tamaño n, encuentre la longitud mínima de subarreglo arr[s..e] tal que al ordenar este subarreglo se ordene todo el arreglo.

    Ejemplo: si el arreglo de entrada es [10, 12, 20, 30, 25, 40, 32, 31, 35, 50, 60], su programa debería poder encontrar que el subarreglo se encuentra entre los índices 3 y 8.

  2. Dada una array binaria, en la que mover un elemento del índice i al índice j requiere un costo abs(i – j). La tarea es encontrar el costo de mover todos los 1 a cada índice de la array dada.
    Input: 
    arr[] = {0, 1, 0, 1}
    Output: 
    4 2 2 2

    Explicación:

    Mover elementos del índice 1, índice 3 al índice 0 requiere abs(0 – 1) + abs(0 – 3) = 4.

    Mover elementos del índice 1, índice 3 al índice 1 requiere abs(1 – 1) + abs(1 – 3) = 2.

    Mover elementos del índice 1, índice 2 al índice 2 requiere abs(2 – 1) + abs(2 – 3) = 2.

    Mover elementos del índice 1, índice 2 al índice 3 requiere abs(3 – 1) + abs(3 – 3) = 2.

    Por lo tanto, la salida requerida es 4 2 2 2.

Ronda 5 (ronda de codificación F2F en Zoom): CoderPad con dos desarrolladores de Goldman Sachs

  1. Problema de colocar N reinas de ajedrez en un tablero de ajedrez N×N de modo que no haya dos reinas que se ataquen entre sí.

    El resultado esperado es una array binaria que tiene unos para los bloques donde se colocan las reinas.

    Por ejemplo, a continuación se muestra la array de salida para la solución anterior de 4 reinas.

    { 0,  1,  0,  0}
    { 0,  0,  0,  1}
    { 1,  0,  0,  0}
    { 0,  0,  1,  0}

    Solución: utilice la recursividad y el retroceso

  2. Implemente un SnapshotArray que admita la siguiente interfaz:

    SnapshotArray(int length) inicializa una estructura de datos similar a una array con la longitud dada. Inicialmente, cada elemento es igual a 0.

    void set(index, val) establece el elemento en el índice dado para que sea igual a val.

    int snap() toma una instantánea de la array y devuelve el snap_id: el número total de veces que llamamos a snap() menos 1.

    int get(index, snap_id) devuelve el valor en el índice dado, en el momento en que tomamos la instantánea con el snap_id dado

    Solución: use el arreglo 2D de la clase Node, el 1D se usa para almacenar los índices y el 2D se usa para almacenar las instantáneas. Para que cada índice obtenga el valor en un id de complemento particular, podemos usar la búsqueda binaria ya que se ordenará la array de complemento en cada índice y la complejidad de la operación de obtención se reduce a log (N)

Ronda 6 (Ronda de codificación F2F en Zoom): CoderPad con dos desarrolladores de Goldman Sachs

  1. https://www.hackerrank.com/challenges/connected-cell-in-a-grid/problema

Ronda 7 (ronda de codificación F2F en Zoom): CoderPad con dos desarrolladores de Goldman Sachs

  1. Dada una array de números aleatorios, Empuje todos los ceros de una array dada al final de la array. Por ejemplo, si las arrays dadas son {1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0}, debe cambiarse a {1, 9, 8, 4, 2, 7, 6, 0, 0, 0, 0}. El orden de todos los demás elementos debe ser el mismo.

    La complejidad de tiempo esperada es O(n) y el espacio extra es O(1).

  2. Algunos conceptos básicos relacionados con strings y strings en Java y Python.

Ronda 8 (Ronda F2F en Zoom): CoderPad con dos desarrolladores de Goldman Sachs

  1. Algunas preguntas sobre mis proyectos recientes, las tecnologías en las que he trabajado y las políticas de evacuación de caché.
  2. Introducción al equipo de gestión del patrimonio del cliente (CWM Goldman Sachs), los productos y los usos de las pilas tecnológicas de Goldman.

Después de estas rondas, finalmente recibí un correo de Recursos Humanos para discutir la compensación.

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 *