吸血鬼に関するほとんど知られていない事実は、彼らが適合ドナー血液型を持っている犠牲者の血液を飲まなければならないということです。吸血鬼の互換性マトリックスは、通常の赤血球ドナー/レシピエントマトリックスと同じです。これは、次のアメリカ赤十字社の表で要約できます
Type You Can Give Blood To You Can Receive Blood From
A+ A+, AB+ A+, A-, O+, O-
O+ O+, A+, B+,AB+ O+, O-
B+ B+, AB+ B+, B-, O+, O-
AB+ AB+ everyone
A- A+, A-, AB+, AB- A-, O-
O- everyone O-
B- B+, B-, AB+, AB- B- O-
AB- AB+, AB- AB-, A-, B-, O-
チャレンジ
入力として血液型を受け取り、2つのリストを出力する関数またはプログラムを作成します。
- 入力型の寄付を受け取る可能性のある型の順序なしリスト
- 入力型に寄付を与える可能性のある型の順序なしリスト
関数を記述する場合は、いくつかの例を使用してその関数を呼び出すテストプログラムも提供してください。そうすれば、簡単にテストできます。この場合、テストプログラムはスコアにカウントされません。
入力
入力は、8つの可能な赤血球タイプの1つを正確に表す文字列でなければなりませんO−
O+
A−
A+
B−
B+
AB−
AB+
。入力は通常の方法(STDIN、コマンドライン引数、関数引数など)を介して与えることができます。
他の入力が与えられた場合、プログラム/関数は空の出力を返すか、エラーをスローする必要があります。通常、コードゴルフの質問では厳密な入力チェックは素晴らしいことではありませんが、血液型を間違えることによる生死の影響を考えると、このルールを追加する必要があると感じました。
出力
出力は、あなたの言語に適した形式の人間が読める2つの血液型のリストになります。出力リストの1つに8つのタイプすべてが含まれる特別な場合、このリストはオプションでを含む単一のアイテムリストに置き換えることができますeveryone
。
通常の出力は、通常の場所(STDOUT、関数リターンなど)の1つに送られます。
その他の規則
- 標準的な抜け穴は禁止されています
- この目的のために明示的に設計されていない限り、必要な既存のサードパーティライブラリを使用できます。
例
- 入力の
AB-
場合、2つの出力リストは次のようになります。{AB+, AB-}, {AB-, A-, B-, O-}
- 入力の
AB+
場合、2つの出力リストは次のようになります。{AB+}, {O−, O+, A−, A+, B−, B+, AB−, AB+}
または{AB+}, {everyone}
個人的な注意:できれば献血を検討してください。数年前に受け取った輸血なしでは、今日ここにいないかもしれないので、寄付できる人にとても感謝しています!