Словарь синонимов
Сохраняем соответствие в обоих направлениях.
Как к ней подойти
Потренируйтесь хранить пары «ключ - значение» и находить нужные записи в словаре.
Словарь связывает ключ со значением и позволяет быстро найти запись по ключу. Решите, что будет ключом, что значением и как обрабатывать отсутствующую запись. Для подсчётов удобно начинать с нуля.
Запрос может содержать любое слово пары, поэтому нужны обе записи.
Проверьте перед запуском
- Синонимия симметрична.
- Все слова различны, поэтому перезаписи конфликтующих пар нет.
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Двусторонний словарь
Запрос может содержать любое слово пары, поэтому нужны обе записи.
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) для пар и текста.