Este es el segundo de una serie, el tercero es Dos caminos divergidos en un bosque amarillo (parte 3)
Esto se basa en dos caminos divergidos en un bosque amarillo (parte 1) , un desafío previo mío. Fue bastante bien recibido, pero también fue bastante trivial (¡una respuesta de Java en 52 bytes!) Así que hice algo más complejo ...
La inspiración
Este desafío está inspirado en el famoso poema de Robert Frost, "The Road Not Taken":
Dos caminos se bifurcaban en un bosque amarillo,
y lo siento, no podía viajar a la vez,
y ser un viajero, me quedé parado
y miré hacia abajo lo más lejos que pude,
hacia donde se doblaba en la maleza;... 2 párrafos recortados ...
Voy a decir esto con un suspiro
En algún lugar de siglos en adelante:
dos caminos divergieron en un bosque, y yo
... tomé el menos transitado,
y eso ha marcado la diferencia.
Observe la penúltima línea I took the one less traveled by,
,. Su objetivo es encontrar el camino menos transitado en su entrada de cadena. Debe generar uno de los 2 valores que son distintos entre sí que indican en qué dirección debe girar para tomar el camino menos transitado. Una vez que la carretera se bifurca (el rastro de los hexágonos cambia a números) estás en la intersección. A partir de ahí, habrá 2 caminos formados por dígitos. El camino cuyos dígitos tienen la suma más baja será el camino no tomado. Tenga en cuenta que el camino no tomado puede tener una ruta más grande pero una suma de ruta más baja. Aquí hay algunos ejemplos / casos de prueba de un programa que imprime "izquierda" o "derecha" para la ruta no tomada:
1 2
1 2
1 2
#
#
#
left (3 < 6)
1 2
2 2
1 1
#
#
#
left (4 < 5)
12 2
11 2
1 1
#
#
#
right (6 > 5)
99 989
99 89
99 99
99 99
#
#
#
#
left (72 < 79)
1111 1110
001 111
11 11
11 11
#
##
##
##
left (9 < 10) (Note: 1111 is interpreted as 1+1+1+1=4, not 1111=1111)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
Cosas para asumir y recordar
- Siempre habrá 2 caminos. Ni mas ni menos.
- Puede tomar la entrada de STDIN una línea a la vez, una cadena que contiene caracteres LF o una cadena que contiene una barra diagonal inversa y una n. Si necesita información de alguna otra manera, solicite aprobación en los comentarios.
- No tiene que preocuparse por entradas no válidas o rutas vinculadas. Esos nunca serán ingresados a su programa / función.
- La entrada puede ser de cualquier longitud en ancho o alto, menor que el límite de cadena de su idioma.
- Nunca habrá un
#
y un número en la misma línea. - Todos los dígitos en la ruta son enteros positivos de 0 a 9.
- Se permite la entrada o salida con una nueva línea final.
- Vea mi respuesta JS ES6 a continuación para ver un ejemplo.
- Siempre habrá al menos 1 espacio entre las 2 rutas.
- Las 2 rutas siempre tendrán la misma altura para cada mapa, pero pueden ser diferentes en otros mapas.
- Si está confundido acerca de un caso de prueba específico, dígamelo.
- 1111 se interpreta como 1 + 1 + 1 + 1 = 4, no 1111 = 1111. El mapa es una serie de números de un dígito, no números de longitud arbitraria.
- Este es el código de golf , por lo que gana la respuesta más corta en bytes.
- Lagunas estándar prohibidas
Si tiene alguna pregunta sobre este desafío, pregúnteme en los comentarios y ¡buena suerte!
let answers = $('div > h1').map(function(){return $(this).clone().children(':not(a)').remove().end().text().replace(/\s+/g,' ').trim()}).get();answers.splice(0, 1);answers.join('\n');
$("div > h1").map(function(){return $(this).text()}).get().join("\n");
en tu consola!