Fondo
Inspirado en que soy un palíndromo. ¿Eres tú? , donde se presenta el hecho impactante de que " ()()
no es un palíndromo, pero ())(
", me pregunté qué es ()()
y la respuesta es simplemente: ¡es una cuerda con un eje de simetría vertical!
La tarea
Escriba un programa o función que tome una cadena S (o el equivalente apropiado en su idioma) como entrada, verifique la simetría a lo largo del eje vertical y devuelva un valor verdadero o falso en consecuencia. Puede utilizar cualquier medio razonable para tomar la entrada y proporcionar la salida.
Simetría reflexiva
La simetría de reflexión alrededor de un eje vertical (o simetría izquierda-derecha) significa que si coloca un espejo verticalmente en el centro exacto de la cuerda, la imagen reflejada de la primera mitad de la cuerda es idéntica a la segunda mitad de la cuerda.
Por ejemplo, las siguientes cadenas son simétricas de reflexión alrededor de un eje vertical:
()()
()()()
[A + A]
WOW ! WOW
OH-AH_wx'xw_HA-HO
(<<[[[T*T]]]>>)
(:)
)-(
())(()
qpqp
mientras que los siguientes no son:
())(
((B))
11
+-*+-
WOW ! wow
(;)
qppq
Reglas del concurso
• Su programa o función recibirá solo caracteres ASCII imprimibles. Puede incluir o no la cadena vacía (que es simétrica, por supuesto) como entrada legal, lo que es mejor para usted.
• Los caracteres ASCII que pueden considerarse simétricos con respecto a los ejes verticales son los siguientes (observe el espacio inicial y la diferencia entre letras mayúsculas y minúsculas):
!"'+*-.:=AHIMOTUVWXY^_ovwx|
Los caracteres ASCII que pueden considerarse "reflejados" y sus caracteres correspondientes son:
()<>[]{}qpbd/\
Tenga en cuenta que, dado que están reflejados, puede tener ambos ()
, así como )(
, /\
y \/
, etc.
Todos los demás caracteres imprimibles ASCII deben considerarse asimétricos y sin un carácter correspondiente reflejado.
• Este es un desafío de código de golf : cuanto más corto sea su programa, medido en bytes, mejor, en cualquier lenguaje de programación.
• ¡Felicitaciones a las personas que producirán un programa simétrico!
Nota : esta pregunta no es un duplicado de "Palindrome conveniente" , que requiere verificar las cadenas palindrómicas en las que se invierten los paréntesis. Esta pregunta es diferente por dos razones:
1) es una restricción de la otra pregunta para lo que concierne a los caracteres sin paréntesis, ya que solo los caracteres simétricos pueden aparecer en orden inverso.
2) Dado que se basa en el concepto de simetría, y no en un concepto de “palíndromo conveniente”, personajes de espejo pueden aparecer tanto en el orden, es decir, []
y ][
, y esto hace que el programa de resolverlo diferente de los programas que resuelven el otro problema .
8
considera "simétrico"?