Tengo alrededor de 1,5 años de experiencia y recibí una llamada de un reclutador a través de LinkedIn.
Ronda 1 (Nivel de dificultad – Medio): Prueba de codility de 90 minutos que comprende 3 preguntas de codificación.
- Primera pregunta: número mínimo de paréntesis necesarios para que la string sea un paréntesis válido.
Se espera que esta pregunta se resuelva en un solo recorrido, de lo contrario, da TLE. - Segunda pregunta: la substring más pequeña que aparece solo una vez en una string determinada
https://www.geeksforgeeks.org/smallest-substring-occurring-only-once-in-a-given-string/ - Tercera pregunta: relacionada con la array y el DP, fue difícil y requirió mucho tiempo
- Requerido resolver el 50% para pasar a la siguiente ronda
Ronda 2: (Entrevista Técnica Ronda-1) Nivel de Dificultad – Medio: El entrevistador ha proporcionado un enlace de codificación y me ha pedido que resuelva un solo problema.
- Pregunta : dado un BST, encuentre dos Nodes colocados incorrectamente en el árbol.
Nota : primero resuélvalo utilizando un enfoque de fuerza bruta y luego proporcione una solución optimizada. Lo resolví usando un simple recorrido en orden y he dado el resultado requerido. - El entrevistador fue muy amable y me ayudó cada vez que me atasqué.
Ronda 3: (Nivel de dificultad – Difícil): El entrevistador ha dado un vínculo de codidad con dos problemas y me pidió que los resolviera.
- Primera pregunta: https://www.geeksforgeeks.org/program-generate-possible-valid-ip-addresses-given-string/
- Segunda pregunta: dadas 2 ciudades A y B y dada una array de pares (costoA, costoB) donde costoA = costo de trasladar personas a la ciudad A y costoB = costo de trasladar personas a la ciudad B. Escriba un programa para trasladar a 2N personas a ambas ciudades A y B tales que N personas están en A y N personas están en B y el costo es mínimo.
Enfoque : ordené la array en función de la diferencia en el costo de ambas ciudades. La clasificación se puede realizar mediante una interfaz de comparación en Java.
Ronda 4: (Nivel de dificultad – Medio): esta ronda fue realizada por el gerente del proyecto.
- Cuando se le pidió que diseñara un pequeño sistema de URL, teniendo en cuenta mis años de experiencia, el entrevistador me ayudó con el problema de diseño básico de obtener los requisitos y calcular el rendimiento.
https://www.geeksforgeeks.org/system-design-url-shortening-service/
Ronda 5: (Nivel de dificultad – Difícil): esta ronda fue realizada por el Gerente de ingeniería de software. Proporcionó un enlace de codility con 1 problema para resolver
- Pregunta: Dados 2 valores N, Sprint todas las combinaciones de N números tales que su suma sea S.
Ejemplo: Entrada – N=2, S=6
Salida: [0,6],[1,5],[2,4] ,[3,3],[4,2],[5,1],[6,0]. - El problema podría haber sido simple si N = 2, pero N varía y se permiten repeticiones y todas las combinaciones. Lo resolví usando un enfoque recursivo en el que un número se mantiene constante y comencé a llenar otros números de modo que la suma sea igual a S.
Ronda 6: Ronda AA (Nivel de dificultad – Medio): Esta es la ronda final llamada AA (Según corresponda). El entrevistador ha dado un enlace de codidad con 1 problema a resolver.
- Pregunta: Dada una array de 2N números, reorganice la array de modo que los números pares estén en índices pares y los números impares estén en índices impares. No hay espacio adicional para ser utilizado.
- Lo resolvió usando un solo recorrido, y el entrevistador ha probado el código contra múltiples casos de prueba y todos los casos de esquina.
Sugerencia: el enfoque principal en Microsoft es la resolución de problemas y las habilidades de diseño de sistemas. Practicar LeetCode y las preguntas etiquetadas de Microsoft en gfg ayuda mucho.
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