Experiencia de entrevista de Arcesium para ingeniero de software sénior

Ronda de codificación en línea (HackerRank): 3 preguntas de codificación con un límite de tiempo de 1 hora.

  1. Dada una string binaria, encuentre el número mínimo de reemplazos para hacer que la string binaria se alterné
  2. Hay N números de productos del 1 al N. Hay dos números X e Y. Hay dos tipos de descuentos $A y $B. Se otorga un descuento de $A si i (índice del artículo) es divisible por X. Se otorga un descuento de $B si I (índice del artículo) es divisible por Y. Si i (índice del artículo) es divisible tanto por X como por Y, se puede dar un descuento de $A o $B. Debe calcular el descuento máximo en todos los artículos.
  3. Dada una string de caracteres en minúsculas y un diccionario que tiene pares clave-valor como carácter. Reemplace todos los caracteres de la string (que están presentes como clave en el diccionario) por su valor correspondiente O Reemplace todos los caracteres de la string (que están presentes como valor en el diccionario) por su clave correspondiente.

Ejemplo: 

if string is ‘abc’ and the dictionary has pair
{‘a’:’c’}, then replace all ‘a’s with ‘c’ and all ‘c’s with ‘a’.

La ronda 1:

  1. Introducción rápida
  2. OOPS (¿Qué es la interfaz? ¿Qué es la abstracción?)
  3. ¿Qué es Hash Map? ¿Qué es HashTable?
  4. ¿Qué es la sincronización? ¿Cómo se logra en Java?
  5. Dado un Node raíz, escribe un algoritmo para dar la lista de los Nodes que contribuyen a la vista izquierda del árbol.
  6. ¿Qué es la recolección de basura en Java? ¿Cuándo se invoca? ¿Como funciona?
  7. ¿Qué es ExecutorService en Java? ¿Qué es CompletionService en Java?
  8. Hay una vieja tienda de comestibles. Tienen un sistema informático antiguo que utiliza una lista vinculada para agregar información del cliente (número de teléfono móvil del cliente y nombre del cliente) y recuperar la información a través del número de teléfono móvil. Cuando un cliente llega a Shope, le pedimos su número y obtenemos la información del cliente del sistema. Si no está presente, le pedimos un nombre y agregamos la información. Hay muchos clientes frecuentes también. El sistema ya tiene muchos registros, por lo que la recuperación se está volviendo muy lenta. Ahora, debe modificar la lógica de adición y recuperación para que podamos mejorar el rendimiento. No se puede cambiar la estructura de datos. Proporcioné diferentes políticas para diferentes escenarios y discutí cada una:
    • Cada vez que encontramos al cliente en la lista enlazada, movemos ese Node al primero. Agregamos nuevos clientes al comienzo de la lista.
    • Mantenemos el punto de inserción para la nueva inserción. Justo después del cambio de lógica, estará al principio de la lista. Cada vez que encontramos al cliente en la lista enlazada, movemos ese Node al primero. Cada nueva inserción está en el punto de inserción. La nueva inserción se desplazará un lugar a la derecha, siempre que haya un cliente repetido. De esta forma, todos los Nodes a la izquierda del punto de inserción serán los clientes visitados recientemente. por lo tanto, un nuevo cliente también será visitado recientemente, pero el último de él, ya que visitó la tienda solo una vez.
    • Cada vez que recuperamos la información del cliente, debemos llevar el Node 2 o 3 pasos adelante.

    Ya he comentado que toda política se inclina a un caso particular.

    Por ejemplo, el primero es para suponer que un nuevo cliente visitará la tienda nuevamente. 2º, el nuevo cliente no vuelve a visitar. 3º, política general, donde vamos aumentando paulatinamente la posición. El entrevistador quedó satisfecho.

  9. Está recibiendo comentarios del cliente de que su servicio se ha vuelto lento durante 2 meses, estaba bien hace 2 meses. ¿Cómo depurarás esto? Esta pregunta era una pregunta muy genérica. Quería ver qué pasos tomo cuando tengo que depurar algo. Por ejemplo, verificar las confirmaciones de los últimos 2 meses para esa función, etc.
  10. ¿Cómo se revisa el código?

Esta ronda duró 75 minutos.

Ronda 2: en una asamblea, los estudiantes de la misma clase están parados en orden creciente de altura en la misma fila. Hay estudiantes de clase N y K en cada clase. Debe dar al conjunto de estudiantes que sigue a continuación dos políticas:

  • El conjunto debe contener al menos un estudiante de cada clase.
  • La diferencia de altura máxima y altura mínima en el conjunto debe ser mínima.

Esta ronda duró 60 minutos.

Ronda 3:

Diseño de POO para el sistema del Banco. Los bancos tienen diferentes tipos de cuentas. La cuenta tiene funciones de retiro, depósito, cálculo de saldo y cálculo de intereses. No todas las cuentas tienen todas estas funciones. Por ejemplo, las cuentas corrientes no tienen la función de cálculo de intereses. El entrevistador estaba más interesado en saber cómo diseño mi estructura de clases.

Pregunta SQL:

t_Producto:

P_id , P_name
1,     OnePlus 6T
2,     OnePlus 7
3,     Oppo F7

t_Transacciones:

P_id, Date,     Quantity
2,    8/1/2020, +20
1,    8/1/2020, +10
2,    8/2/2020, -2

Los minoristas tienen estas dos tablas. La cantidad de +Ve en la tabla Transaction muestra que el minorista compró artículos al proveedor. -Ve la cantidad en la tabla Transacción muestra, los minoristas vendieron artículos. Dada una fecha, escriba una consulta SQL para proporcionar el stock actual (Nombre del producto, Cantidad) del artículo hasta esa fecha.

Responder:

Select t_Product.P_name as Product_Name,
SUM(t_Transactions.Quantity) from t_Product 
inner join t_Transactions where t_Product.P_id 
= t_Transactions.P_id AND t_Transactions.Date. 
<= @date GROUP By Product_Name;

Esta ronda duró 60 minutos.

Ronda 4 (Ronda de HR):

  1. Introducción rápida
  2. Información sobre la familia
  3. ¿Por qué quiere dejar su organización actual?
  4. ¿Por qué quieres unirte a Arcesium?
  5. Ha dejado su organización en un período breve. Convénceme por qué no debo creer que harás lo mismo con Arcesium.
  6. CTC esperado.

¡Contratado! el proceso de entrevista fue a distancia en la plataforma blue jean. Fue rápido y bien organizado. Justo después de 2-3 horas de terminar una ronda de codificación en línea, recibí el correo de Arcesium para programar la primera ronda de entrevistas. En promedio, cada ronda se programó con 2 o 3 días de diferencia. La carta de oferta se envió después de una semana de la entrevista de recursos humanos. Entonces, el proceso de entrevista duró alrededor de 15 días.

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 *