Ключи и замки I

Полный перебор комбинаций

Описание задачи

Реализовать функции для подбора ключей к замкам. Ключ — строка из A-E. Замок может содержать - (любой символ).

Функции

countKeys(minLocks, locks)
  → количество ключей, открывающих ≥ minLocks замков

findKeys(minLocks, locks)
  → массив строк-ключей

Логика

Пример

Условие
Locks: ["A-B", "-BB"]
minLocks: 2
Key length: 3
Анализ
Замок "A-B": позиция 0='A', 1=любой, 2='B'
Замок "-BB": позиция 0=любой, 1='B', 2='B'

Ключ открывает ОБА если:
  Позиция 0: 'A' (из первого)
  Позиция 1: 'B' (из второго)
  Позиция 2: 'B' (общее)

Единственный ключ: "ABB"
Результат
countKeys(2, locks) → 1
findKeys(2, locks) → ["ABB"]

Ключевые моменты

← К списку Ключи и замки II →