Рубрики

Directi Интервью | Набор 6 (в кампусе для стажировки)

Недавно Directi посетил наш кампус для отбора стажеров. Был проведен 1 раунд онлайн-кодирования на codechef, 2 раунда Algo Interview и 1 раунд технического обслуживания.>

Раунд онлайн-кодирования: было 2 вопроса. Вопрос 1 имел 2 балла, тогда как вопрос 2 имел 1 балл.

  • Вопрос 1. Есть сжатая строка, например. ”Ab2c3”, строка содержит строчные буквы и цифры. Мы можем распаковать данную строку следующим образом: всякий раз, когда мы получим число «n» в строке, часть строки перед числом будет повторяться «n» раз. Таким образом, в приведенном выше примере мы получаем 2, поэтому строка станет «ababc3», теперь мы получаем 3, поэтому последняя строка будет «ababcababcababc».
    Учитывая сжатую строку и число k, вы должны вывести k- й символ в несжатой строке. 1 <= длина строки <= 1500 1 <= n <= 1000 1 <= k <2 31
    Пример:
    input: ab2c3 10 
    output: c
  • Вопрос 2. Есть строка, символами которой могут быть только «a», «b» или «_» (в строке может быть только один «_»). На каждом шаге мы можем изменить строку следующим образом:
    1. «_» можно поменять местами с соседним символом, например, «a_ba» можно изменить на «_aba» или «ab_a».
    2. Два символа, смежные с «_» (оба на одной стороне от «_»), можно поменять местами вместе с «_», если оба символа отличаются, например, «aa_ba» можно изменить на «aaab_», но не на «_Aaba», потому что оба символа — «a».

    Вам даны две строки, начальное состояние и конечное состояние (длины будут одинаковыми), вы должны вывести минимальное количество шагов, необходимых для изменения строки в начальном состоянии, на строку в конечном состоянии.

    Пример:

    input: a_b ab_ 
    output: 1 
    input: abaa_a b_aaaa 
    output: 4 
    

    Подсказка: используйте поиск в ширину

  • Они отобрали 12 учеников после этого конкурса для следующего тура.

2 тур (телефонное интервью):

  • Вопрос 1. Предположим, вам дана строка длиной n и набор пар (i, j такой, что 0 <= i <j <n). Пара «i, j» (индексирование на основе 0) означает, что вы можете поменять местами i- й и j- й символы в строке любое количество раз. Вы должны вывести лексикографически наименьшую строку, которую можно получить, выполнив любое количество перестановок во входной строке.
    Пример:
    input: zcxfbe  0, 1    0, 2    3, 5
    output: cxzebf

    Подсказка: попробуйте смоделировать проблему на графике.

  • Вопрос 2. Предположим, в таблице две стопки тарелок. У одной есть «м» КРАСНЫЕ пластины, а у другой — «ЧЕРНАЯ». По своему усмотрению игрок может выбрать любое количество красных или черных пластинок или равное количество красных и черных пластинок. Игрок проигрывает, если он не может сделать ход по своему шансу. Вы играете в эту игру со своим другом. Учитывая, что вы начинаете игру и оба игрока играют оптимально, выведите «L», если вы проиграете, или «W», если вы выиграете.
    Пример:
    input: m = 1, n = 2
    output: L
    input: m = 2, n = 2
    output: W
  • После этого раунда они отобрали 4 человек для следующего раунда интервью.

Раунд 3 (лицом к лицу):

  • Вопрос 1. Предположим, что есть «n» деревьев (буквальные деревья, а не деревья информатики, предположим, что у них нет ветвей, больше как у прямой палки), каждое из них имеет некоторую высоту. Мы хотим х длины дерева. У нас есть дровосек, который мы будем использовать, чтобы срезать все деревья на одинаковой высоте «h» от земли, если «h» больше высоты любого дерева, это означает, что дерево не обрезается. Учитывая высоту всех деревьев и требуемую длину «x» древесины, выведите высоту «h» от земли, откуда вы будете рубить все деревья.
  • Вопрос 2. У вас есть неориентированный взвешенный граф с заданными входными данными «x» и «y», которые являются любыми двумя вершинами графа, вы должны вывести все ребра, которые находятся в любом из кратчайших путей от x до y.
    Обратите внимание, что кратчайший путь может быть кратным от x до y. Мы должны вывести все ребра в любом из этих кратчайших путей.
  • Они выбрали только 1 студента для следующего тура.

Раунд 4 (Технический раунд, телефон): В этом раунде он задал мне небольшие вопросы, в том числе:

  1. О любом из моих проектов.
  2. Преимущества и недостатки BST и хеширования. Вопросы связанные с коллизиями при хешировании и т. Д.
  3. Вопрос, связанный с базами данных, он попросил меня сделать запрос.
  4. Сформулируйте угол между часовой стрелкой и минутной стрелкой часов для любого заданного времени.
  5. Предположим, у нас есть огромный CSV-файл с диапазонами IP-адресов и соответствующим кодом страны, с учетом любого IP-адреса, как мы найдем страну, к которой он принадлежит.
  6. Разница между BST и попытками.
  7. Он задал несколько вопросов из курса «Сеть» и «ОС».
  8. У вас есть огромный связанный список, как вы будете обнаруживать любой цикл в связанном списке.
  9. Он задал еще несколько небольших вопросов, которые я не помню, после чего интервью закончилось.
    Я был выбран после прохождения всех этих раундов. 🙂

Подсказки:

  1. Их основное внимание было уделено строкам и графику, хорошо подготовиться к ним.
  2. Практикуйте свои коды на бумаге или в документе Google, вы не получите никакого редактора для кодирования.
  3. Держите ваши концепции ясными по всем темам, они могут спросить вас о любой мелкой детали любой структуры данных или алгоритма.

Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Все практические проблемы для Directi !

Напишите свой опыт интервью или отправьте его по электронной почте на адрес contrib@geeksforgeeks.org

Рекомендуемые посты:

Directi Интервью | Набор 6 (в кампусе для стажировки)

0.00 (0%) 0 votes