Entrevista con Bloomberg | Conjunto 1 (entrevista telefónica)

Haga clic aquí para ver la documentación de la videoconferencia.

Antes de proceder a leer esto, asegúrese de leer un poco sobre Bloomberg y, lo que es más importante, su centro de investigación y desarrollo en Londres. Se le dará una buena parte del tiempo para decirle al entrevistador lo que sabe sobre Bloomberg. El entrevistador dijo que trabajó para más. de 11 años en Bloomberg, por lo que no será bueno si solo inventas algunas respuestas, solo lee un poco al respecto.

La entrevista, Ian, empezó una hora antes, y el entrevistador me dio algo de tiempo para preparar mi máquina, si te ha pasado, no entres en pánico, y por supuesto puedes decirle que prefieres tener la entrevista a tiempo.

El entrevistador comenzó presentándose a sí mismo y la tecnología que ha estado usando en Bloomberg.
A continuación, me pidieron que me presentara y tuvimos una conversación sobre mi currículum, mi educación y proyectos.

Luego, el entrevistador saltó a la pregunta técnica, pegando el cuerpo del código, para completar las funciones:

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <cstdlib>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
using namespace std;
  
//1234
//1,234
  
// 104450 -> 104,450
// 123123123 -> 123,123,123
  
// 1000000 -> 10,00,000
// 00010100
  
string formatNum(int num) {
  
}
  
int main() {
    string res;
    int _num;
    cin >> _num;
      
    res = formatNum(_num);
    cout << res;
      
    return 0;
}

//Esta fue una parte de la primera entrevista telefónica de Bloomberg

La pregunta fue bastante fácil, me pidieron que implementara una función que, dado un número entero num, devolviera una representación de string del número, separada por comas.
es decir, f(1234) = “1,234”

Mi implementación fue la siguiente:

string formatNum(int num) {
  
    int total_processed = 0;
    string ret = "";
  
    while (num > 0){
        if (total_processed != 0 && total_processed %3 == 0)
            ret += ",";
        ret += (char) (num %10 + '0');
        total_processed ++;
        num /= 10;
    }
    reverse (ret.begin(), ret.end());
  
    return ret;
}

Luego, el entrevistador preguntó que la función debería admitir diferentes estilos de coma, es decir, el estilo estadounidense frente al indio
//Indian 1000000 -> 10,00,000
//US 1000000 -> 1,000,000

Sugerí que se debería pasar cierto estilo a la función, ya sea como una máscara de enteros o un vector de enteros, representando las posiciones en las que se necesita una coma.
Preguntó si solo se puede enviar una abreviatura de string a la función en lugar de un vector, así que sugerí usar un mapa, que almacena para cada código de estilo el vector de enteros correspondiente.

Mi implementación fue la siguiente:

//EN style = {3, 6, 9, 12, 15}
//IN style = {3, 5, 7, 9, 11, 13}
  
//map <string, vector <int> > style_map
  
string formatNum(int num, string rec_style) {
  
    int total_processed = 0;
    string ret = "";
    vector <int> style = style_map[rec_style];
    int n = style.size();
    n--;
  
    while (num > 0){
        //if (total_processed != 0 && total_processed %3 == 0)
        if (total_processed == style[n]){ 
            ret += ",";
            n--;
        }
        ret += (char) (num %10 + '0');
        total_processed ++;
        num /= 10;
    }
  
    reverse (ret.begin(), ret.end());
  
    return ret;
}

Luego pasamos a otra pregunta, que se refiere a la programación orientada a objetos.
El entrevistador preguntó qué clase crearía para que este código fuera más útil.
Sugerí que debería crear una clase para el entero representado, para encapsular su valor numérico, su valor de string, su estilo y las funciones asociadas a él.

El código quedó de la siguiente manera:

class something{
    string num, rec_style;
    something(int n, string style);
    change_style(string new_style);
    bool operator < (something e) const{        
    }
}

El entrevistador me pidió entonces que elaborara el principio de herencia.
Lo ilustré usando el ejemplo de los vehículos (automóviles, furgonetas, camiones, autobuses, etc.)
y luego discutimos mis preferencias de diseño, en relación con la herencia de clases y el polimorfismo, y qué hacer: más herencia frente a más codificación.
Mi respuesta cubrió el mantenimiento y la reutilización del código.

Luego tuve la oportunidad de preguntarle al entrevistador lo que quisiera sobre la empresa y su trabajo en Bloomberg.

Resultado: pasé a una videoconferencia con los otros entrevistadores.

Resumen: La entrevista es fácil, solo tienes que mantener la calma y tratar de dar las respuestas al punto sin exageraciones, ¡buena suerte!

Puedes consultar la documentación de la videoconferencia aquí .

Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

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 *