Tarefa
Defina uma regex simples como uma expressão regular não vazia que consiste apenas em
- caracteres
0
e1
, - agrupar parênteses
(
e)
, - um ou mais quantificadores de repetição
+
.
Dada uma sequência não vazia de 0
s e 1
s, seu programa deve encontrar a regex simples mais curta que corresponda à sequência de entrada completa . (Ou seja, ao corresponder a uma regex simples, finja que ela é reservada por ^
e $
.) Se houver várias regexes mais curtas, imprima uma ou todas elas.
code-golf , de modo que o menor envio (em bytes) vence.
Casos de teste
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
é um caso interessante ... um algoritmo ingênuo escreveria 01+0+1+0
ou (0+1+)+0
não seria o ideal.