Tarea
Defina una expresión regular simple como una expresión regular no vacía que consta solo de
- personajes
0
y1
, - agrupando paréntesis
(
y)
, - cuantificador de repetición de uno o más
+
.
Dada una cadena no vacía de 0
sys 1
, su programa debería encontrar la expresión regular simple más corta que coincida con la cadena de entrada completa . (Es decir, al hacer coincidir una expresión regular simple, simule que está marcada por ^
y $
.) Si hay varias expresiones regulares más cortas, imprima una o todas ellas).
code-golf , por lo que gana el envío más corto (en bytes).
Casos de prueba
1 -> 1
00 -> 00 or 0+
010 -> 010
1110 -> 1+0
01010 -> 01010
0101010 -> 0(10)+ or (01)+0
011111 -> 01+
10110110 -> (1+0)+
01100110 -> (0110)+ or (01+0)+
010010010 -> (010)+
111100111 -> 1+001+ or 1+0+1+
00000101010 -> 0+(10)+ or (0+1)+0
1010110001 -> 1(0+1+)+ or (1+0+)+1
01100110
es un caso interesante ... escribiría un algoritmo ingenuo 01+0+1+0
o (0+1+)+0
que no son óptimos.