Edición importante: Anteriormente, había un valor incorrecto en el Ejemplo 1. Se ha solucionado.
Se le proporciona una matriz bidimensional en la que cada celda contiene uno de los cuatro valores.
Ejemplos:
1 2 2 2 2 1 @ . . X X V
1 3 1 4 1 4 e . @ I C V
2 3 1 3 4 2 H H @ X I V
1 4 4 2 1 3 V C C
2 2 2 3 2 3 X X X
Los cuatro valores representan flechas direccionales (arriba, abajo, izquierda y derecha), aunque no sabe qué valor representa qué dirección.
Las flechas direccionales forman una ruta ininterrumpida que incluye todas las celdas de la matriz, aunque no sabe dónde están los puntos de inicio o finalización.
Escriba un código que determine en qué dirección representa cada uno de los cuatro valores y dónde están los puntos inicial y final.
Un valor de retorno aceptable para una matriz que contiene los valores A, B, C y D sería algo así como:
{ up: A, down: C, left: D, right: B, start: [2, 0], end: [4, 2] }
Debido a que puede atravesar el camino en ambos sentidos (de principio a fin y de final a inicio), siempre habrá más de una solución correcta, y puede haber más de dos. Suponga que las entradas que recibe (como en los ejemplos anteriores) siempre tienen al menos una solución correcta. En los casos en que hay más de una solución correcta, devolver solo una de las soluciones correctas es suficiente.
El código más corto gana. Elegiré el ganador después de 7 días o 24 horas sin una nueva presentación, lo que ocurra primero.
Incluyo soluciones a los ejemplos anteriores, pero le animo a que las verifique solo una vez que haya escrito su código:
Uno:
{arriba: 3, abajo: 1, izquierda: 4, derecha: 2, inicio: [0,0], final: [2,5]}
Dos:
{arriba: '@', abajo: 'e', izquierda: '.', derecha: 'H', inicio: [1,1], final: [0,0]}
Tres:
{arriba: 'I', abajo: 'V', izquierda: 'C', derecha: 'X', inicio: [0,2], final: [4,2]}
