Не забудьте приобрести экземпляр Проектирование приложений с интенсивным использованием данных, самой важной книги, которую следует прочитать при подготовке к собеседованию по проектированию систем!
Хэш-таблицы с их быстрым поиском и универсальными приложениями часто становятся любимой темой в технических интервью. Поскольку кандидаты готовятся к должностям инженеров-программистов в Meta (ранее Facebook), освоение проблем с хеш-таблицами может дать значительное преимущество. Погрузитесь в пять самых популярных вопросов о хеш-таблицах, которые часто задаются во время собеседований с Meta, а также об их решениях на Python.
1. Две суммы
Вопрос: Учитывая массив целых чисел nums
и целое число target
, верните индексы двух чисел, сумма которых равна target
.
Почему это задается. Эта задача проверяет базовое понимание использования хэш-таблиц для быстрого поиска.
def twoSum(nums: List[int], target: int) -> List[int]: num_map = {} for i, num in enumerate(nums): complement = target - num if complement in num_map: return [num_map[complement], i] num_map[num] = i
Не тратьте часы на Leetcode. Изучите закономерности с помощью курса Проведение собеседования по программированию: шаблоны вопросов по программированию.
2. Групповые анаграммы
Вопрос: Учитывая массив строк, сгруппируйте анаграммы вместе.
Почему это задается: Этот вопрос углубляется в манипулирование строками и их правильное хеширование.
def groupAnagrams(strs: List[str]) -> List[List[str]]: anagram_map = {} for s in strs: sorted_str = "".join(sorted(s)) if sorted_str in anagram_map: anagram_map[sorted_str].append(s) else: anagram_map[sorted_str] = [s] return list(anagram_map.values())
Получите более высокую зарплату с помощью Grokking Comp Negotiation в сфере технологий.
3. Первый уникальный символ в строке
Вопрос: Учитывая строку, найдите первый неповторяющийся символ и верните его индекс.
Почему об этом спрашивают. Он демонстрирует возможность просматривать данные и использовать хеш-таблицы для целей подсчета.
def firstUniqChar(s: str) -> int: char_count = {}…