Page 193 - Bkhargava_-_Grokaem_algoritmy
P. 193
192 Глава 8. Жадные алгоритмы
Учтите, что правильных решений может быть несколько. Вы перебираете
все станции и выбираете ту, которая обслуживает больше всего штатов, не
входящих в текущее покрытие. Будем называть ее best_station:
best_station = None
states_covered = set()
for station, states_for_station in stations.items():
Множество states_covered содержит все штаты, обслуживаемые этой стан
цией, которь1е еще не входят в текущее покрытие. Цикл for перебирает все
станции и находит среди них наилучшую. Рассмотрим тело цикла for:
covered = states_needed & states_for_station Новый синтаксис! Эта операция
if len(covered) > len(states_covered) .... ···· называется "пересечением
best_station = station множеств"
states_covered = covered
В коде встречается необычная строка:
covered = states_needed & states_for_station
Что здесь происходит?
Множества
Допустим, имеется множество с названиями фруктов.
ФРУКТЫ
Также имеется множество с названиями овощей.
nоми.а.оР
06014М
www.trk.kg