Ihre Aufgabe ist es also, einen 3x3-Block zu erstellen, in dem -
die mittleren Leerzeichen und *
die mittleren ausgefüllten Leerzeichen enthalten sind, zum Beispiel:
-**
-*-
*-*
und ordne den Block so an, dass die *
ein X bilden, wie folgt:
*-*
-*-
*-*
Eingabe: 3x3 Quadrate wie oben, es können 3 Zeilen sein, ein Array, oder wie Sie wollen.
Ausgabe: Die kürzeste Anzahl von Zügen, die in ein X umgeordnet werden müssen. Bei jedem Zug werden 2 Zeichen umgedreht, die sich berühren und horizontal, vertikal oder diagonal voneinander sind. Wenn dies nicht möglich ist, geben Sie eine unmögliche Ausgabe zurück, z. B. 999
oder -4242
. 5
ist die kleinste solche Zahl.
Testfälle:
1) Ausgabe: 1
-**
-*-
*-*
2) Ausgabe: -1
-*-
-*-
*-*
3) Ausgabe: 3
---
-**
***
4) Ausgabe: 0
*-*
-*-
*-*
Sie können die leeren und nicht leeren Zeichen ersetzen, aber achten Sie darauf, welche in Ihrem Beitrag enthalten ist
Code Golf
Denken Sie daran, dies ist Code Golf, der kürzeste Code gewinnt!
*
? Können Sie weitere Testfälle hinzufügen?
*
oder weniger als 5 zurückzugeben, wird dies unmöglich.
-1
? Zum Beispiel 5
(sonst unmöglich) oder einen Fehler werfen?
*
und umgekehrt oder das Austauschen von Zeichen ?