Entrevista de Goldman Sachs para desarrollador de Java en Hong Kong (10 años de experiencia)

Ronda 1: Esta fue una ronda de Coderpad. Duración-75 minutos. Necesita codificar mientras el entrevistador supervisa su enfoque. Esta ronda tenía 2 preguntas para codificar.

  • La pregunta era encontrar un número que sea divisible solo por números primos. Si es así, devuelva verdadero o falso.
    ex- 15: se puede dividir por 3, y 3 es un número primo, luego devuelve verdadero.
    17: es un primo en sí mismo y luego devuelve verdadero.
    18: se puede dividir por 6, que no es un número primo, devuelve falso.

Código: debe crear el cuerpo de la función desde cero.

  • La pregunta era calcular la distancia mínima/2 entre 2 strings dadas dentro de un párrafo. La string se puede duplicar. E ignore la puntuación que distingue entre mayúsculas y minúsculas (como comas o puntos)
    Por ejemplo, el párrafo: «El rápido zorro marrón salta sobre el perro perezoso, es un pangrama en inglés».
    Strings dadas: (fox, the), la respuesta debe ser 12/2 = 6
    Explicación: entre fox y the, está la string «salta sobre» longitud = 12 y dividida por 2 = 6, puede estar en decimal como x .5 Debe
    ignorar primero «El» ya que la distancia es mayor.

Código: se le ha dado una solución, pero eso no era correcto, debe modificarlos y corregir la solución y hacer que pasen todos los casos de prueba.

Completé todos los códigos, excepto que el caso de la prueba de puntuación estaba fallando, y obtuve un tiempo de espera para la entrevista. Pero esta ronda fue despejada y se procede a la siguiente ronda.

Ronda 2: la ronda dos fue una entrevista de Zoom con 2 entrevistadores: – Tiempo 60 minutos
Comenzó con una presentación formal, trabajo actual y experiencia.

  • Ha dado 2 archivos, que contienen una string en cada línea. Debe comparar todas las strings en ambos archivos y devolver verdadero si ambos archivos tienen una cantidad exacta de strings en cualquier orden. Proporcioné una solución con HashMap para mantener el recuento de cada string y luego otro HashMap para mantener el recuento y luego comparar entre sí. Luego, el entrevistador solicitó realizar con un solo HashMap, respondí que podemos mantener el conteo en HashMap para el primer archivo y luego seguir deduciendo el conteo para el segundo archivo si el conteo es menor que cero para cualquier string o string no encontrada y luego devolver falso. Por último, verifique HashMap si algún conteo es mayor que cero devuelve falso. 
    Luego, haga un seguimiento de las preguntas sobre el cálculo de la complejidad sobre las soluciones que proporcioné.
  • Tiene n número de la lista ordenada, puede tener elementos duplicados. tienes que imprimirlo en orden ordenado juntos.
    Proporcioné una solución, podemos fusionar todo primero y luego ordenarlo a través de Colecciones. sort(), luego las preguntas de seguimiento sobre el algoritmo de clasificación, expliqué Merge sort pero no pude responder la complejidad de tiempo exacta.

Luego, el entrevistador me pidió que resolviera con un enfoque diferente, traté de resolver explicando: Podemos iterar sobre esa colección de listas, todas con números ordenados. Elegiremos un número y registraremos todas las listas si el número es el más bajo, luego imprimiremos el número y lo eliminaremos de esa lista si se encuentra un duplicado, elimínelo también de esa lista. Seguiremos haciendo esto hasta que cualquier lista tenga algún elemento y seguiremos eliminando e imprimiendo.
El entrevistador hizo una pregunta de seguimiento sobre la complejidad de tiempo y espacio de su solución, no estaba muy seguro al respecto.

Ronda 3: La ronda 3 fue una entrevista de Zoom con 2 entrevistadores: tiempo de 60 minutos. Empecé con una introducción formal y luego pregunté sobre la arquitectura y el negocio de mi proyecto. Le expliqué mi proyecto y los límites/limitaciones para manejar llamadas simultáneas. 
El entrevistador preguntó cómo manejar la llamada si obtiene más de los límites definidos para su servidor. Le expliqué cómo el entorno de la nube se ocupa de los picos en las demandas de llamadas. Se puede escalar el servidor.
Luego, el entrevistador preguntó cómo manejar esta situación con la arquitectura interna. Le expliqué que podemos diseñar nuestro propio filtro/interceptor que realiza un seguimiento de cada llamada y envía una alerta para crear una nueva instancia si el número de llamadas llega a un punto definido. Primero, le estaba explicando cómo crear un proyecto separado y conectarlo con la API, pero por último, quería escuchar, simplemente crear una clase en el proyecto de la API que activaría una alerta.

A continuación, me hizo algunas preguntas:

  • Cómo manejar llamadas simultáneas, como 2 usuarios actualizando los mismos registros, después de múltiples soluciones, la entrevista estuvo de acuerdo en que podemos manejarlo con Apache Kafka, básicamente, quiere escuchar el enfoque de bloqueo optimista. 
  • Diseñe un sistema en el que los usuarios puedan reservar vacunas en función de la ubicación y debe mostrar las vacunas disponibles a los usuarios, diseñe todo, incluida la estructura de la base de datos y los flujos de llamadas API.
  • Tenemos millones de clientes y nuestra base de datos se actualiza constantemente. Dígame el enfoque en el que podemos obtener y mostrar la vacuna disponible de la base de datos, que es 99,99 % correcta, lo que significa que refleja el valor de la base de datos en ese momento. No pude responder, no estoy seguro de lo que realmente quería, si usar algunas herramientas o enfoque.

No recibí oferta.

Espero que esto les ayude a ustedes y todo lo mejor!!

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 *