私のワイヤーはすべて絡まっています!
ワイヤーがすべて絡まると迷惑になりませんか?まあ、それはちょうど私に起こったので、私はそれらを解くのを手伝いたいです!便宜上、これらすべてをデバイスから切断しましたが、すべてコンセントに接続されたままです。あなたの課題は、それらを解く方法を理解することです!
入力
入力は、スペース、パイプ、およびXで構成されます(両方の場合)。入力は次のようになります。
| | | |
X | |
| | x
| X |
| | | |
大文字のXは、左のワイヤが右のワイヤと交差することを意味し、小文字のxはその反対を意味します。最初と最後の行は常にです| | | |...
。入力は、コンマ区切りの文字列、文字列の配列などとして使用できます。意味があり、余分な情報が含まれていない限り、形式は厳密ではありません。
出力
この挑戦のために、私はどれくらい時間がかかるかを知る必要があるだけでなく、私は何をすべきかを正確に知る必要があります。したがって、大文字と小文字を区別しない文字RまたはLを持つ整数ペアのリストを出力します。これは、2本のワイヤを解く方法と方向を表します(RはLの場合は右、左の場合はその逆)。どの方法でそれらを解除するかを教えてください。私は自分でそれを理解できません。すべての整数ペア+文字を正しい順序で出力し、余分なナンセンステキスト(括弧、コンマなどは問題ありません)を出力しない限り、出力もかなり柔軟です。ワイヤには、0個または1個のインデックスを付けることができますが、インデックスは左から開始する必要があります。上部からではなく、下部からもつれを解く必要があることに注意してください。出力スタイルは一貫している必要があり、明確でない場合は出力方法を指定してください。キャラクターの大文字小文字は一致していませんが、
サンプル出力
上記の入力例の場合、出力は次のようになります。
2 3 R
3 4 L
1 2 R
ここでの出力形式は、スペースで区切られた値の改行で区切られたリストです。これは1インデックスです。
さらなる仕様
Xとxをいずれかの順序で互いに垂直に積み重ねることは有効です。私は怠け者であるため、不必要にワイヤを切り替えたくないので、これらの場合には何も出力しないでください。それが見つかったら、ワイヤーをそっと引っ張ってまっすぐにします。
また、複数のXとxを垂直に積み重ねることも有効です。また、どちらのワイヤも他の交差に関与していない限り、余分な動きは必要ありません(怠け者だからです)。したがって、文字がX X x X x x
他の交差なしで列に表示される場合、出力は空白のままです。
これが明確でない場合、RはXを除去し、Lはxを除去します。
同じ行に2つのワイヤ交差がある可能性があります。その場合、これら2つのスワップの順序は重要ではありません。次のようなものは得られ| X X |
ません(これは意味がありません。これは、中央のワイヤが左右両方のワイヤを越えていることを意味するためです)。
常に交差点があるわけではありません...
入力は単一のパイプにすることができます。ただし、入力が空白になることはありません。
12月20日に最短の有効なソリューションが勝利します!
その他の例
私が約束したように:
例1
入力
| | | | | |
| | X x
X | x |
| x | X
X X | |
| | | | | |
出力
1 2 R
3 4 R
2 3 L
5 6 R
1 2 R
4 5 L
3 4 R
5 6 L
例2
入力
| | |
X |
| x
| | |
| X
| x
| | |
出力
2 3 L
1 2 R
例3
入力
|
出力は空白です。はい、このケースに対処する必要があります。
例4
入力
| |
X
x
X
x
X
x
X
x
X
x
| |
出力は空白です。ただ楽しみのために:)。
例5
入力
| |
X
X
x
X
x
x
| |
出力はまだ空白です...