Рубрики

Flipkart Интервью Опыт | Набор 40 (для SDE 1)

У меня взяли интервью для роли Flipkart по разработке программного обеспечения (SDE1). Раунд 1: Раунд машинного кодирования: (90 минут) Дано двоичное дерево в виде последовательности (родительского, дочернего) кортежей: (AB) (AC) (BG) (CH) (EF) (BD) (CE) Написать программу найти следующие ошибки в дереве:

  • E1: более 2 детей
  • E2: дубликаты кортежей
  • E3: цикл присутствует
  • E4: множественные корни
  • E5: несколько родителей

Ввод — это выражение, содержащее родительские дочерние отношения. вывод — Коды ошибок или успех.

Примеры тестовых случаев

  • Вход: (AB) (AC) (BG) (CH) (EF) (BD) (CE) Выход: успех
  • Вход: (AB) (AC) (AD) Выход: E1
  • Вход: (AB) (AB) Выход: E2
  • Вход: (AB) (BC) (CA) Выход: E3
  • Вход: (AB) (CD) Выход: E4
  • Вход: (AB) (BC) (AC) Выход: E5

Решение

Код написан в javascript для node.js. Тесты используют мокко. Основная хитрость в этом вопросе заключается в том, что структура данных должна содержать такие данные не в виде двоичного дерева, а в виде графика. Или граф с двумя наборами ребер детей и родителей.

Я использовал этот DS в JavaScript, чтобы решить:

function Node(data) {
  this.data = data;
  this.children = [];
  this.parents = [];
}

Обнаружение цикла может быть сделано с помощью http: // www. geeksforgeeks.org/detect- цикл-в-графике / Мое решение: https://github.com/niklabh/ tree-error-checker

Раунд 2: Лицом к лицу 1. Разработайте балансировщик нагрузки, который реализует следующие методы:

  • add (n), где n — это идентификатор экземпляра
  • удалить (n) где n это идентификатор экземпляра
  • getRandom (), который возвращает случайный экземпляр.

Все эти операции должны быть порядка O (1). Решение: http://stackoverflow.com/ questions / 5682218 / data-structure-insert-remove-contains-get-random-element-all-at-o1 Последующим вопросом для этого вопроса было изменение getRandom таким образом, чтобы он возвращал с взвешенной случайностью, а не равномерной случайностью, если веса связаны с экземплярами. Решение: http: // stackoverflow. ru / questions / 4463561 / weighted-random-selection-from-array 2. Вы получите результат турнира по крикету со всеми выигрышами и проигрышами. Напечатайте команды таким образом, чтобы победившая команда всегда была справа от проигравшей команды. Решение: Сохраните результаты в виде Направленного ациклического графа и выполните топологический алгоритм сортировки. http://espressocode.top/ topological-sorting /

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

  1. Объясни свои проекты в деталях
  2. Ключевые показатели вашего проекта, т. Е. Объем загрузки и т. Д.
  3. Если вы храните одни и те же данные в отдельных БД, как вы будете их синхронизировать?
  4. Если вы хотите написать свой проект с нуля, что вы измените?

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

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

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

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

Flipkart Интервью Опыт | Набор 40 (для SDE 1)

0.00 (0%) 0 votes