Görev
Basit bir normal ifadeyi yalnızca aşağıdakilerden oluşan boş olmayan bir normal ifade olarak tanımlayın
- karakterler
0
ve1
, - parantez gruplama
(
ve)
, - bir veya daha fazla tekrar nicelik belirteci
+
.
Boş olmayan bir 0
s ve 1
s dizesi verildiğinde , programınız tam giriş dizesiyle eşleşen en kısa basit normal ifadeyi bulmalıdır . (Yani, basit bir normal ifadeyle eşleştiğinde, ^
ve ile işaretlenmiş gibi davranın $
.) Birden çok kısa normal ifade varsa, bunların herhangi birini veya tümünü yazdırın.)
kod-golf , böylece (bayt cinsinden) en kısa gönderme kazanır.
Test senaryoları
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
ilginç bir durum var ... saf bir algoritma yazacaktı 01+0+1+0
ya (0+1+)+0
da optimal olmayan.