Cuando una persona recibe una transfusión de sangre, es fundamental asegurarse de que el tipo de sangre del donante sea compatible con el tipo de sangre del receptor. Recibir un tipo de sangre que no sea compatible con el propio puede ser potencialmente mortal, por lo que los bancos de sangre siempre se aseguran de registrar el tipo de sangre que reciben de los donantes para garantizar una transfusión segura.
Los tipos de sangre se nombran según tres factores: la presencia del antígeno A, la presencia del antígeno B y la presencia del factor Rh. Si se encuentra el antígeno A, el tipo de sangre incluye la letra "A". Si se encuentra el antígeno B, el tipo de sangre incluye la letra "B". Y si está presente el factor Rh, el tipo de sangre termina en "+"; de lo contrario, termina en "-". Si no se encuentra ni el antígeno A ni el antígeno B, el tipo de sangre incluye la letra "O".
Por ejemplo, una persona que solo tiene el antígeno A tendría el tipo de sangre "A-". Una persona que tiene ambos antígenos, A y B, y el factor Rh tendría el tipo de sangre "AB+", y una persona que solo tiene el factor Rh tendría el tipo de sangre "O+".
Las reglas para donar y recibir sangre son las siguientes:
Escribe una función que reciba como cadenas el tipo de sangre del donante y el del receptor, y devuelva si el donante puede donar sangre al receptor de forma segura, según las reglas anteriores.
can_give_blood("O+", "A+") ➞ True
can_give_blood("A-", "B-") ➞ False
can_give_blood("A-", "AB+") ➞ True