手紙のサイコロは、単語ゲームでは一般的です。たとえば、おかしな単語をボグルサイコロで綴ろうとするのは楽しいことです。ほんの一握りのサイコロをつかむと、特定の単語を綴ることができなくなる可能性があります。この課題は、そのアイデアの一般化です。
チャレンジ
それぞれが少なくとも1つの顔と単語を持つサイコロのリストが与えられたら、あなたの仕事は、与えられたサイコロを使用してその単語を綴ることができるかどうかを判断することです(その場合、それは真実の結果を返すはずです)。各ダイから1文字のみ使用でき、ダイは1回しか使用できません。指定されたサイコロをすべて使用する必要はありません。
例
サイコロ[[A]、[C]、[T]]および文字列CATを使用した簡単な例では、結果はtrueです。BATは、Bが付いたサイコロがないため、もちろんfalseを返します。
サイコロのセットとして[[A、E、I、O、U]、[A、B、C、T]、[N、P、R]]が与えられた場合、ART、TON、およびCURに対してtrueを返します。 、ただし、CAT、EAT、およびPANについてはfalseです。これらの文字列はサイコロを再利用する必要があるためです。また、十分なサイコロがないため、CRABにこれらのサイコロを綴ることができないこともかなり明白です。
サイコロのセットとして[[A、B、C]、[A、E、I]、[E、O、U]、[L、N、R、S、T]]が与えられた場合、次のことができます。 CAT、BEE、BEAN、TEA、BEET、およびBANをスペルしますが、LONE、CAB、BAIL、TAIL、BAA、またはTONをスペルすることはできません
同じダイが複数存在する場合があります。[[A、B、C]、[A、B、C]、[A、B、C]]が与えられた場合、CAB、BAA、AAAなどを綴ることができます...その中にB、またはC。
ルール
- 標準的な抜け穴を悪用しない
- これはcode-golfなので、最短のコードが優先されます。
- 単語とサイコロの両方が大文字のみで構成されていると仮定することができます。
- 単語は常に少なくとも1文字の長さであり、常に少なくとも1つのダイが存在すると想定できます。
- あなたはダイスが同じ文字を複数持つことはないと想定するかもしれません。
- 入力および出力は、任意の便利な形式にすることができます。