したがって、あなたの仕事は3x3ブロックを取得することです。ここで、-
の意味は空白スペースであり、*
の意味は塗りつぶされたスペースです、例えば:
-**
-*-
*-*
次*
のように、がXを形成するようにブロックを再配置します。
*-*
-*-
*-*
入力: 上記のような3x3の正方形、3行、配列、または必要に応じて。
出力: Xに再配置するための最短の移動量。各移動は、互いに水平であるか、互いに垂直であるか、または互いに斜めである、接触している2つのキャラクターを反転させます。不可能な場合は、不可能な出力を返します(例:999
または)-4242
。5
最小のそのような数です。
テストケース:
1)出力:1
-**
-*-
*-*
2)出力:-1
-*-
-*-
*-*
3)出力:3
---
-**
***
4)出力:0
*-*
-*-
*-*
空白文字と非空白文字を置き換えることができますが、投稿にどちらが含まれるかを必ず確認してください
コードゴルフ
これは、最短のコードが勝つコードゴルフです。
*
ますか?さらにテストケースを追加できますか?
*
ことが不可能な場合」5 以上または5 未満では不可能になります。
-1
ますか?たとえば5
(そうでなければ不可能)、またはエラーを投げますか?
*
、またはその逆へのフリップを意味しましたか、それとも交換しますか?