Su tarea es compilar expresiones regulares ... especificando una sustitución para cada personaje en una expresión regular.
Expresiones regulares
Las expresiones regulares soportan estos
REGEX = (LITERAL REGEX / GROUP REGEX / STAR REGEX / ALTERNATIVE)
LITERAL = 1 / 0
GROUP = '(' REGEX ')'
STAR = (LITERAL / GROUP) '*'
ALTERNATIVE = '('REGEX ('|' REGEX)*')'
¿Por qué solo 1 o 0? Es para simplificar. Por lo tanto, la expresión regular solo tiene los siguientes caracteres:
*()|10
Se interpreta de la siguiente manera:
*
es la estrella de Kleene (repite el grupo izquierdo o literal 0 o más veces).|
es alternancia (coincide si la expresión regular a la izquierda o la expresión regular a la derecha coincide).()
está agrupando1
coincide con el personaje 1.0
coincide con el caracter 0.
¿Cómo compilar?
Especifica seis fragmentos de código: uno para reemplazar cada carácter regex. Por ejemplo, si su respuesta es:
*
:FSAGFSDVADFS
|
:GSDGSAG
(
:GSDG
)
:GDSIH
1
:RGIHAIGH
0
:GIHEBN
Luego, reemplaza cada expresión regular con su fragmento de código respectivo, por lo que:
(0|11)*
se convierte en:
GSDGGIHEBNGSDGSAGRGIHAIGHRGIHAIGHGDSIHFSAGFSDVADFS
¿Qué se supone que debe hacer el programa resultante?
Tu programa:
- Toma la entrada.
- Salida de un valor verdadero si la expresión regular coincide con la entrada completa.
- Otra salida de un valor falso.
La entrada al exterior 01
es un comportamiento indefinido limitado. La entrada puede estar vacía.
Reglas adicionales
- Para un determinado carácter regex, el fragmento resultante debe ser siempre el mismo.
- No se agrega ningún prefijo o sufijo después.
- Se garantiza que la expresión regular no será vacía.
Tanteo
El fragmento menos combinado es el ganador. Por lo tanto, la puntuación para el caso de ejemplo se calcularía de la siguiente manera:
FSAGFSDVADFS
+ GSDGSAG
+ GSDG
+ GDSIH
+ RGIHAIGH
+GIHEBN
12 + 7 + 4 + 5 + 8 + 6 = 42