Рубрики

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

Онлайн-тест. Этот тест был организован cocubes.com и должен был быть выполнен в течение часа.

Было два вопроса по кодированию:

1. Существует связанный список, чей узел определяется следующим образом

    struct node
    {
        int x,y;
        node* next;
    };

Мы должны были реализовать функцию, которая берет заголовок связанного списка, и если любые три последовательные точки лежат на одной горизонтальной или вертикальной линии, нам пришлось удалить средний узел. Связанный список будет пустым или будет содержать как минимум два узла. Прототип функции был:

    void remove(node* head)
    {

    }

Пример:

Input: (1,2)->(2,3)->(2,4),(2,5)->(3,4)
Output: (1->2)->(2,3)->(2,5)->(3,4)

2. С учетом отсортированного массива преобразуйте его в сбалансированное по высоте дерево двоичного поиска. Балансированное по высоте дерево — это дерево, в котором для каждого узла разность высот левого и правого поддерева не превышает 1. Узел двоичного дерева был:

    struct node
    {
        int data;
        node* left;
        node* right;
    };

Функция для реализации была:

    node* binary_tree(int* ar, int len)
    {

    }

Опрос:
Было проведено 3 раунда собеседования, и мы написали код на бумаге.

Раунд 1:
Было два вопроса:
1. Получив строку, удалите все непрерывные вхождения «a» и любое вхождение «b».
Пример: ввод: «aacbccdbsssaba», затем вывод: «acccdsssa»

2. Какую структуру данных следует использовать, если мы должны реализовать функции вставки и удаления в текстовом редакторе? Функции должны быть максимально быстрыми.

Раунд 2:
Вопрос 1: Учитывая строку и две позиции в этой строке, перетасуйте строку, то есть переместите указанную подстроку вперед. Пример:
Вход: abcdefgh, 4,6
Выход: defabcgh
Это должно быть сделано на месте с O (n) временной сложностью.

Вопрос 2: Как реализовать словарную структуру данных в C ++? Какие хеш-функции мы будем использовать? Как управлять столкновениями?

Вопрос 3: Как бы вы реализовали векторную структуру данных в C ++ самостоятельно? Какова будет сложность доступа к времени? Как вы можете сделать это O (1)? Как изменить размер структуры?

Раунд 3:
Вопрос 1: Для k-арного дерева, как распечатать слой элементов?

Вопрос 2: Учитывая односвязный список и число «n», напишите код, чтобы поменять местами все «n» элементов связанного списка. Пример:
Ввод: 1-> 2-> 3-> 4-> 5-> 6, n = 3
Выход: 3-> 2-> 1-> 6-> 5-> 4

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

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

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

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

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

0.00 (0%) 0 votes