Dada una serie de o
s que representan puntos, conéctelos vertical u horizontalmente
Ejemplos
Entrada:
o o
o
Salida:
o---o
|
|
o
Entrada:
o o o
o
Salida:
o---o----o
|
o
Especificaciones
Si desea que la entrada se rellene con espacios para formar un rectángulo, especifique esto en su respuesta
Solo habrá
o
espacios y líneas nuevas en la entrada- Siempre habrá un par de puntos para conectar
- No
o
habrá dos s directamente adyacentes - Los puntos deben estar conectados con
|
y-
, para conexiones verticales y horizontales respectivamente - No se superpondrán las conexiones de puntos
Respuestas:
Japt,
3329 bytes¡Pruébalo en línea!
Cómo funciona
fuente
Rubí,
137133bytesEsto es absolutamente horrible. Sigo intentando jugar al golf.
Ingrese como un rectángulo acolchado, por favor.
Nueva línea para "legibilidad":
fuente
\b
lugar de(?=o)
?Retina , 80 bytes
La entrada debe ser acolchada.
Pruébalo en línea!
Explicación
La primera etapa es bastante simple, simplemente convierte todos los espacios en guiones que se encuentran entre dos
o
s en la misma línea.La segunda etapa abarca el
|
s. Esto es un poco más complicado y requiere grupos de equilibrio . La mirada atráscomprueba que haya una
o
anterior en la misma columna. Recuerde que las retrospectivas deben leerse de derecha a izquierda.(.)*
almacena la posición horizontal de la coincidencia,\D*¶
verifica los saltos a cualquier carácter en las líneas anteriores,o
coincide literalmente. Luego(?(1)!)^(?<-1>.)*
asegura que la posición horizontal de esoo
sea la misma.El lookahead
Hace exactamente lo mismo en la dirección opuesta.
fuente