Portanto, sua tarefa é pegar um bloco 3x3 -
em que os espaços em branco são médios e *
os espaços preenchidos, por exemplo:
-**
-*-
*-*
e reorganize o bloco para que ele *
forme um X, assim:
*-*
-*-
*-*
Entrada: quadrados 3x3 como acima, eles podem ser de 3 linhas, uma matriz ou como você desejar.
Saída: a menor quantidade de movimentos para reorganizar em um X. Cada movimento está invertendo 2 caracteres que estão tocando e são horizontais um do outro, verticais um do outro ou diagonal um do outro. Se não for possível, retorne qualquer saída impossível, por exemplo 999
ou -4242
. 5
é o menor número desse tipo.
Casos de teste:
1) Saída: 1
-**
-*-
*-*
2) Saída: -1
-*-
-*-
*-*
3) Saída: 3
---
-**
***
4) Saída: 0
*-*
-*-
*-*
Você pode substituir os caracteres em branco e não em branco, mas lembre-se de incluir qual é qual em sua postagem
Code Golf
Lembre-se de que este é o código de golfe, o código mais curto vence!
*
? Você pode adicionar mais alguns casos de teste?
*
ou menos que 5, isso torna impossível.
-1
? Por exemplo 5
(impossível de outra forma), ou lançando um erro?
*
e vice-versa ou trocá-los?