Encuentra X
Me inspiraron las preguntas de matemáticas en las que se le pide a "Encontrar X" para una forma determinada. Originalmente, solo iba a tener el desafío de imprimir la ubicación x e y del carácter 'x' en una Cadena. Pero supuse que sería demasiado simple. Así que consideré el contexto en el que normalmente estaban, y decidí que encontrar la longitud de una Línea al lado de la x simplemente parecía apropiado.
Dada una entrada de cadena que contiene un Diagrama de 'líneas' ascii, así como una 'x' única y caracteres potencialmente basura, imprima la longitud de la única línea que tiene una 'x' directamente adyacente.
Ejemplos
Entrada:
|
|
|x
|
|
Ouput:
5
Entrada:
|\
| \x
| \
|___\
Salida:
4
Entrada:
Diagram of a Wobbly Line:
IRRELEVANTTEXT____
____ ____/
\___/ X ;)
x
Salida:
3
Entrada:
______________
/ ____________ \
|/ __________ \|
||/ ________ \||
|||/ ______ \|||
||||/ \||||
|||||/ x |||||
|||||\_____/||||
||||\_______/|||
|||\_________/||
||\___________/|
\_____________/
Salida:
5
Notas
- Los caracteres de línea válidos son
\/_|
\
conecta la parte superior izquierda e inferior derecha de sí mismo./
conecta la parte superior derecha e inferior izquierda de sí mismo._
conecta la izquierda y la derecha de sí mismo|
conecta la parte superior e inferior de sí mismo- Una línea siempre será recta y solo consistirá en uno de los caracteres de línea repetidos n veces.
- La x siempre estará en minúscula, y siempre será la única en el diagrama.
- Adjecent se refiere a que x es exactamente un carácter arriba, abajo o además.
- La x siempre estará al lado de exactamente una línea.
- Las pestañas nunca aparecerán en la entrada.
- La entrada y la salida pueden tener cualquier formato aceptable.
- Este es Code Golf, ¡así que el código más corto gana!
- QUE TE DIVIERTAS. HAZLO. DIVIÉRTETE.
@
a las respuestas de la prueba de esfuerzo.Respuestas:
JavaScript (ES6),
165155 bytesEDITAR: X y w en línea , para guardar algunos bytes más.
Golfizado (se supone que la entrada se rellena con espacios para hacer un rectángulo)
Expandido
Prueba
Ejemplo de salida (si ejecuta esto en la consola de Google Chrome Developer Tools)
fuente
Python 3,
428408385378 bytesFunciona, pero tiene mucho potencial para jugar al golf. Estoy un poco oxidado
Asume que la entrada se rellena con espacios para hacer un rectángulo.
EDITAR: ¡Gracias a @Artyer por 23 bytes de ahorro!
EDIT2: Wow, me perdí por completo un ahorro de 6 bytes. Ahorró 1 más intercambiando lados de un cheque igual.
Versión ampliada con explicación:
fuente
<!-- language-all: lang-py -->
para resaltar la sintaxis.*i,=map(list,inputtt.split('\n'))
(*i,
hacei
una lista en lugar de un mapa) (-6 bytes más)Lua, 480 bytes
Lua, siendo el lenguaje detallado, no supera la respuesta de Python. Pero no necesita hacerlo.
Similar a mi implementación de referencia, pero toma una oportunidad real de jugar al golf y hace algunas cosas de manera más inteligente que antes. Sin embargo, probablemente podría jugar un poco mejor.
Con comentarios.
fuente
JavaScript (ES6), 175
Suponiendo que la entrada se rellena con espacios para hacer un rectángulo.
Menos golf
Puntos de prueba en lugar de espacios para mayor claridad
fuente