← К задачам
Средне · +3Логика

Совместимость по крови

В операционной срочно нужна кровь, а времени на сверку таблиц нет. Ты пишешь маленький помощник, который мгновенно подскажет, может ли конкретный донор отдать кровь конкретному пациенту.

Напиши функцию can_donate(donor, recipient). Группы заданы строками вида 'O-', 'A+', 'B-', 'AB+' (буква(ы) системы AB0 и знак резуса). Верни True, если донор совместим с реципиентом, иначе False.

Правила совместимости:

  • AB0: O даёт всем; A даёт A и AB; B даёт B и AB; AB даёт только AB.
  • Резус: донор с минусом (-) подходит всем по резусу; донор с плюсом (+) подходит только реципиенту с плюсом.

Примеры:

  • can_donate('O-', 'AB+')True (универсальный донор)
  • can_donate('A+', 'A-')False (плюс не подходит минусу)
  • can_donate('AB+', 'A+')False (AB отдаёт только AB)
def can_donate(donor, recipient):
    pass
Для запуска тестов необходима авторизация.
Поддержать проект