К собеседованиям

Алгоритмический тренажер

Алгоритмическая секция в компании

Тип тренировки
Алгоритмы
Задач
1
Компания
компании
Дата
2026-01-08
Задача 1MediumХешированиеВероятностные структуры данных

Фильтр Блума с несколькими хеш-функциями

Реализуйте упрощенный Bloom filter.

Есть битовый массив размера size, num_hashes hash-функций и список операций:

  • ["add", value] — добавить строку в фильтр;
  • ["check", value] — проверить строку.

Для check верните "MAYBE_EXISTS", если все нужные биты выставлены, иначе "DOES_NOT_EXIST".

Чтобы автотесты были детерминированными, используйте стабильный hash:

def stable_hash(item: str, salt: int, size: int) -> int:
    total = 0
    for ch in f"{salt}:{item}":
        total = (total * 131 + ord(ch)) % size
    return total

Сигнатура

def bloom_filter_trace(size: int, num_hashes: int, operations: list[list[str]]) -> list[str]:

Ваше решение

Консоль
Нажмите «Запустить проверки» или Ctrl+Enter