この課題の目的は、1次元の断片のコレクションを並べて有限の連続チャンクを形成できるかどうかを判断することです。
ピースは 0と1の空でない有限のシーケンスであるものと開始し、終了します。いくつかの可能な部分があり1
、101
、1111
、1100101
。
タイリングとは、1つの連続したブロックが形成されるようにピースを配置することを意味します。ある作品の1つは、別の作品の1つの場所ではなく、ゼロの場所を占めることができます。
同様に、1つを「固体材料」とみなし、0を「穴」とみなす場合、穴を残さずに1つのストレッチを形成するようにピースを合わせる必要があります。
タイルを形成するには、ピースを1次元空間に沿ってのみシフトできます。(それらを分割したり、反映したりすることはできません)。各ピースは1回だけ使用されます。
例
三枚101
、11
、101
各片は必要シフトで表され、以下に示すようにタイル張りすることができます。
101
11
101
したがって、取得されたタイルは
111111
2番目の例として、ピース11011
と1001101
タイルを並べることはできません。特に、シフト
11011
1001101
衝突するものが2つあるため、無効です。そして
11011
1001101
結果にゼロが含まれるため、無効です。
追加のルール
入力は、 1個以上のコレクションです。合理的な形式が許可されます。例えば:
- 文字列のリスト。各文字列には、2つの異なる一貫した文字を含めることができます。
- いくつかの配列。各配列には1つのピースの位置が含まれます。
- 各数のバイナリ表現などの(奇数)整数のリストは、ピースを定義します。
出力は、タイリングが可能であり、そしてfalsy値そうでない場合truthy値であるべきです。出力値は一貫している必要はありません。つまり、入力ごとに異なる場合があります。
プログラムまたは機能にはいずれにも、許可されているプログラミング言語。標準的な抜け穴は禁止されています。
バイト単位の最短コードが優先されます。
テストケース
各入力は異なる行にあります
真実の
1
111
1, 1
11, 111, 1111
101, 11, 1
101, 11, 101
10001, 11001, 10001
100001, 1001, 1011
10010001, 1001, 1001, 101
10110101, 11001, 100001, 1
110111, 100001, 11, 101
1001101, 110111, 1, 11, 1
偽物
101
101, 11
1, 1001
1011, 1011
11011, 1001101
1001, 11011, 1000001
1001, 11011, 1000001, 10101
101101
は、それらの有限数が連続したブロックをもたらさないとしても、真実です。