Мини-урок · перед практикой

Словарь синонимов

Сохраняем соответствие в обоих направлениях.

Как к ней подойти

Потренируйтесь хранить пары «ключ - значение» и находить нужные записи в словаре.

Коротко о теме

Словарь связывает ключ со значением и позволяет быстро найти запись по ключу. Решите, что будет ключом, что значением и как обрабатывать отсутствующую запись. Для подсчётов удобно начинать с нуля.

Ключевая идея · Двусторонний словарь

Запрос может содержать любое слово пары, поэтому нужны обе записи.

Проверьте перед запуском

  • Синонимия симметрична.
  • Все слова различны, поэтому перезаписи конфликтующих пар нет.

Сравните свой подход

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Двусторонний словарь

Запрос может содержать любое слово пары, поэтому нужны обе записи.

n = int(input())
synonyms = {}
for _ in range(n):
    a, b = input().split()
    synonyms[a] = b
    synonyms[b] = a
print(synonyms[input()])

Время: O(n) в среднем без учёта длины строк. Память: O(n) пар ссылок и текст слов.

Другой способ: Поиск по списку пар

Для единственного запроса можно последовательно проверять обе стороны каждой пары.

n = int(input())
pairs = [input().split() for _ in range(n)]
word = input()
for a, b in pairs:
    if word == a:
        print(b)
        break
    if word == b:
        print(a)
        break

Время: O(n) без учёта длины строк. Память: O(n) для пар и текста.