Ctrl K

Шаблон в таблице цифр

Средняя
Дана прямоугольная таблица grid из цифр от 0 до 9 и прямоугольный шаблон template — список строк, где каждый символ либо цифра, либо строчная латинская буква. Прямоугольный фрагмент таблицы того же размера, что и шаблон, подходит под шаблон, если: - там, где в шаблоне цифра, во фрагменте стоит ровно эта цифра; - каждой букве можно сопоставить цифру так, что везде, где стоит буква, во фрагменте стоит её цифра; - разным буквам сопоставлены разные цифры. Цифры шаблона на сопоставление букв не влияют: буква может означать ту же цифру, что записана где-то в шаблоне явно. Верните [строка, столбец] левого верхнего угла подходящего фрагмента. Если таких несколько, выберите тот, у которого меньше номер строки, а при равенстве — номер столбца. Если подходящего фрагмента нет, верните [-1, -1].
Пример 1
grid=[[7, 3, 3], [4, 3, 5], [3, 5, 5]], template=["xy", "yz"] → [1, 0]

Окно с углом (0, 0) — это 7 3 / 4 3: буква y стоит над 3 и над 4, противоречие. Окно с углом (0, 1) — 3 3 / 3 5: x и y обе получают 3, а разные буквы должны означать разные цифры. Окно с углом (1, 0) — 4 3 / 3 5: x = 4, y = 3, z = 5, всё сходится.

Пример 2
grid=[[2, 8, 8], [5, 1, 8]], template=["8", "8"] → [0, 2]

Шаблон из одних цифр требует точного совпадения: столбец 8 / 8 есть только в позиции (0, 2).

Пример 3
grid=[[1, 2, 3]], template=["aa"] → [-1, -1]

Нужны две одинаковые цифры рядом, а их нет.

Ограничения
  • 1 ≤ len(grid), len(grid[0]) ≤ 50
  • 0 ≤ grid[i][j] ≤ 9
  • 1 ≤ len(template), len(template[0]) ≤ 50
  • все строки template одной длины и состоят из цифр и строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСудоку без конфликтов СредняяРазложить анаграммы по группам СредняяНулевые кресты СредняяСлово на сетке букв СредняяРазбиение на слова из словаря Средняя
загружаем Python…
Вход
grid=[[7, 3, 3], [4, 3, 5], [3, 5, 5]], template=["xy", "yz"]
Ожидается
[1, 0]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 95 тестов на сервере, включая скрытые.