Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Решите задачу срочнооо питон

Саша Жарков Ученик (73), открыт 2 дня назад
У вас новый преподаватель по теории графов и он очень быстро читает лекции. Чтобы успевать записывать, вы разработали следующий план.

Вы знаете два языка, причём преподаватель читает лекцию на первом из них. Слова обоих языков состоят из маленьких латинских символов. Каждый язык представляет собой некоторый набор слов. В каждом языке все слова различаются, т. е. записываются различным образом. Более того, между словами этих языков установлено взаимно-однозначное соответствие, то есть для каждого слова каждого языка в другом языке существует ровно одно слово, которое имеет такое же значение.

Каждое слово, сказанное преподавателем, вы можете написать либо на первом языке, либо на втором. Конечно, во время лекции каждое слово вы записываете на том языке, на котором данное слово записывается короче. В случае равенстве длин соответствующих слов вы отдаете предпочтение слову из первого языка.

Вам задан текст лекции, которую прочитает вам преподаватель. Определите, как описанная лекция будет записана вами в конспект.
2 ответа
Анонимус Мудрец (16042) 2 дня назад
Пояснение кода:
  1. solve() функция: Вся логика решения задачи находится внутри этой функции.
  2. n = int(input()): Считывает количество пар слов в словарях.
  3. lang1 = {} и lang2 = {}: Создаются два словаря (словари Python — это аналог ассоциативных массивов). lang1 будет хранить соответствие слов первого языка словам второго языка, а lang2 — наоборот.
  4. Цикл for _ in range(n): Цикл повторяется n раз, считывая пары слов с помощью input().split(). Каждая строка разделяется на два слова пробелом.
  5. lang1[word1] = word2 и lang2[word2] = word1: Пары слов добавляются в словари.
  6. lecture = input().split(): Считывается лекция, разделенная на слова пробелами.
  7. Цикл for word in lecture: Цикл перебирает каждое слово лекции.
  8. Условие if len(word) <= len(lang1[word]): Проверяется, какое слово короче: слово из первого языка или соответствующее ему слово из второго языка. В случае равенства длин, первое слово короче или равно второму слову.
  9. notes.append(...): В список notes добавляется выбранное (более короткое) слово.
  10. print(*notes): Выводится результат — записанная лекция. Звездочка (*) используется для распаковки списка notes перед печатью, чтобы слова были разделены пробелами.

 def solve(): 
n = int(input())
lang1 = {}
lang2 = {}
for _ in range(n):
word1, word2 = input().split()
lang1[word1] = word2
lang2[word2] = word1

lecture = input().split()
notes = []
for word in lecture:
if len(word) <= len(lang1[word]):
notes.append(word)
else:
notes.append(lang1[word])
print(*notes)

solve()
Похожие вопросы