要获得更多的MtG优点,请执行以下操作:魔术:具有能力的聚会战斗
前提:
在《魔法:汇聚》中,您可以通过按所需数量的土地支付法术力费用来施放咒语。这些土地可以产生以下五种颜色之一:
- 白(W)
- 蓝色(U)
- 黑色(B)
- 红色(R)
- 绿色(G)
成本由两部分组成:一个数字(即通用的法术力要求)和一系列代表彩色法术力要求的符号。该数字是普通的法术力费用,可以使用任何颜色的法术力来满足它,例如(3)
可以用支付WGG
。这些符号是特定颜色的1:1要求。例如,WWUBR
将需要2个白色法力,1个蓝色,1个黑色和1个红色。通用部分将始终位于彩色部分之前。提醒一下,这(0)
是有效费用,必须处理。
您可以拥有完全通用的成本或完全彩色的成本,或两者都有。例如,以下卡牌的费用为4BB,并用4点法术值色和2点黑法术值支付:
处于挑战中的土地将各自产生一个法力值。但是,我们将考虑可以产生多种颜色但仍然只产生1点法力的土地。例如,G
将产生绿色的法术力,WG
可以产生1个白色或1个绿色。
输入:
系统将为您提供两个输入,一张卡的费用和一张土地清单。
卡的成本可以是字符串,也可以是包含数字和彩色部分字符串的元组。如果没有通用部分,则可以用0填充字符串/元组。
土地列表将是一个字符串列表,其中每个字符串都是给定土地可以生产的。此列表可以为空(您没有土地)。您也可以使用位掩码逻辑将此列为整数列表,但如果这样做,则发布您的方案。如果重要的话,订购也取决于您,否则将按WUBRG
顺序进行。
#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3) #Both should return falsy
输出:
一个truthy
值,如果你能成功地给支付土地的成本和falsey
价值,如果你不能。
规则:
- 您将获得有效的输入保证
- 假定法力值始终为“ WUBRG”。如果您想要其他顺序,请在答案中注明。
- 颜色将始终按成本分组,例如“ WWUBBRG”
- 输入将使用全部大写或全部小写的形式。
- 您应该能够处理正则表达式
127[WUBRG]{127}
和254个土地。 - 禁止标准漏洞
- 这是 代码高尔夫球,每种语言的最短答案胜出
例子:
"0", ("") => 1
"1BB", ("WG","B","B") => 1
"BB", ("WG","B","B") => 1
"WB", ("WG","B","B") => 1
"1UB", ("W","U","B") => 1
"1BB", ("WB","WB","WG") => 1
"1", ("WG","B","B") => 1
"1BB", ("WGR","WB","WB") => 1
"WUBRG", ("W","U","B","R","G") => 1
"1WWUBB", ("W","WG","U","B","B","R") => 1
"10BB", ("WGR","WB","WB","B","B","B","B","B","B","B","B","B") => 1
"R", ("") => 0
"4", ("WG","B","B") => 0
"1BB", ("WG","WB") => 0
"1UB", ("WG","W","UB") => 0
"1UBR", ("W","WG","UBR") => 0
"WUBRG", ("WUBRG") => 0
"1WWUBB", ("W","WG","U","B","B") => 0
"10UU", ("WGR","WB","WB","B","B","B","B","B","B","B","B","B") => 0