7
一维有限平铺
该挑战的目的是确定是否可以平铺一维块的集合以形成有限的连续块。 阿片是零和一的一个非空的,有限序列的开始和结束与一个。一些可能的作品是1,101,1111,1100101。 平铺是指将小块排列成一个连续的块。一件中的一个可以占据零的位置,但另一件中的一个不能占据零的位置。 同样地,如果我们将一个视为“实心材料”,将零视为“孔”,则这些零件应适合于形成单一拉伸,而不会留下任何孔。 要形成平铺,只能沿着其一维空间移动碎片。(它们不能拆分或反映)。每件仅使用一次。 例子 三块101,11,101可以平铺如示于下,其中每个片与所需的移位表示: 101 11 101 所以获得的拼贴是 111111 作为第二个示例,片段11011和1001101不能平铺。特别是转变 11011 1001101 无效,因为有两个会发生冲突;和 11011 1001101 无效,因为结果将包含零。 附加规则 该输入是一个或多个片段的集合。允许使用任何合理的格式;例如: 字符串列表,其中每个字符串可以包含两个不同的一致字符; 几个数组,其中每个数组包含一块的位置; 一列(奇数)整数,例如每个数字的二进制表示形式定义了一个片段。 的输出应该是一个truthy值,如果平铺是可能的,和一个falsy值否则。输出值不必保持一致;也就是说,对于不同的输入,它们可以不同。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 每个输入在不同的行上 特鲁西 1 111 1, 1 11, 111, 1111 101, 11, 1 101, 11, 101 10001, 11001, 10001 100001, 1001, 1011 10010001, …