おそらく今おわかりのように、6x10グリッドのペントミノパズルには2339のソリューションがあります。12個のペントミノにはさまざまなラベル付けスキームがあり、そのうちの2つが下の画像に示されています。
画像クレジット:ウィキペディア
現在のタスクの目的上、正規化されたペントミノソリューションは、2番目のラベル付けスキーム(Conwayの)を使用するソリューションであると言います。
例:
O O O O O S S S Z Z
P P R R S S W W Z V
P P P R R W W Z Z V
U U X R T W Y V V V
U X X X T Y Y Y Y Q
U U X T T T Q Q Q Q
5つの正方形が一列に並んだ作品O
には、スキームに従って文字が表示されます。同じことがすべてのピースに当てはまります。
仕事:
ピースにランダムシェムのラベルが付けられている6x10ペントミノの解決策を考えて、すべてのピースがConwayのラベル付けスキームでラベル付けされるように正規化します。ピースを認識し、特定のピースの各正方形にピースのシンボルをマークする必要があります。
入力:
正規化するソリューション。たとえば、次のようなユーザーにとって便利な任意の形式です。
複数行の文字列
文字列のリスト
文字のリストのリスト
等々
出力:
同じソリューション(すべてのピースの位置と方向が保持されます)が、各ピースはConwayのラベル付けスキームに従ってラベル付けされます。注:出力は、文字の6x10グリッドとして印刷する必要があります。先頭と末尾の改行とスペースは許可されます。上記の例のように、文字間にスペースを印刷することもできます(空行ではありません)。
テストケース:
1.入力:
6623338888
6222344478
66A234BB70
1AAA94B770
11A99BB700
1199555550
出力:
UURTTTQQQQ
URRRTVVVSQ
UUXRTVZZSY
PXXXWVZSSY
PPXWWZZSYY
PPWWOOOOOY
2.入力:
45ookkkk00
455ooogk00
4a55gggdd0
4aaa3gnnd.
4am333ndd.
mmmm3nn...
出力:
OWSSQQQQPP
OWWSSSRQPP
OTWWRRRUUP
OTTTXRZZUV
OTYXXXZUUV
YYYYXZZVVV
受賞基準:
各言語のバイト単位の最短ソリューションが勝ちです。ゴルフ言語に落胆しないでください。アルゴリズムと実装の説明を歓迎します。