Задача 5. Алгоритмы на Python, чтобы закипели мозги

Как понять, что кандидат может писать код? - дать ему задачу на алгоритмы. Применяется ли это в реальной работе - не важно. Решать обязан. Аналитиков не гоняют по алгоритмам как программистов - это хорошая новость. Плохая новость в том, что программировать все же надо уметь. В этой статье я даю классическую задачу на алгоритмы с собеседований на аналитика. Она решается с помощью словарей. Даже если в точности такая вам не попадется, я рекомендую запомнить принципы, они универсальны.

Зачем спрашивать алгоритмы у аналитиков?

В самом деле, в чем смысл, если есть ИИ? Действительно, стоит попросить ИИ написать код и он сделает это. Т.е. думать, по-идее, уже не надо, за тебя думает компьютер. Но в этом и кроется подвох. Компании хотят нанять думающих людей, которые умеют что-то без ИИ. Поэтому они дают задачи на алгоритмы.

Постановка задачи

В этой статье рассматривается классическая задача по алгоритмам. Звучит она так: Написать функцию, которая группирует слова-анаграммы вместе. Например для списка слов ['eat','tea','the','teh','hte','abc','edf'] функция вернет [['eat','tea'], ['the','teh','hte'], 'abc','edf'] . Анаграммы - это слова, которые имеют одинаковые буквы, но буквы перемешаны. Например, eat и tea - это анаграммы.

Видим что:

✅ функция должна вернуть список, каждым элементом которого является список или строка.

✅ анаграммы сгруппированы вместе в рамках одного списка: ['the','teh','hte'], ['eat','tea'].

✅ слова, для которых анаграммы не найдены, идут просто строкой, т.е. без списка.

Требуется уровень Капитан Повысить