Tarea
Defina una expresión regular simple como una expresión regular no vacía que consta solo de
- personajes
0y1, - agrupando paréntesis
(y), - cuantificador de repetición de uno o más
+.
Dada una cadena no vacía de 0sys 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
01100110es un caso interesante ... escribiría un algoritmo ingenuo 01+0+1+0o (0+1+)+0que no son óptimos.