字母骰子在文字游戏中很常见。例如,尝试用骰子拼写有趣的单词可能会很有趣。如果您抓一把骰子,则可能无法拼写某些单词。这个挑战是对这一想法的概括。
挑战
给定一个骰子列表,每个骰子至少具有一张面孔和一个单词,您的任务是确定是否可以使用给定的骰子对该单词进行拼写(在这种情况下,它应该返回真实的结果)。每个骰子只能使用一个字母,每个骰子只能使用一次。您不需要使用所有给定的骰子。
例子
在一个简单的示例中,使用骰子[[A],[C],[T]]和字符串CAT,结果为true。BAT当然会返回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等...但是显然没有A的话, B,或C在其中。
规则
- 没有利用标准漏洞
- 这是代码高尔夫,因此最短的代码获胜。
- 您可能会假设单词和骰子都只能由大写字母组成。
- 您可能会假设该单词的长度始终至少为1个字母,并且始终会有至少1个骰子。
- 您可能会认为骰子永远不会有多个相同的字母。
- 输入和输出可以采用任何方便的格式。