Tugas
Tetapkan regex sederhana sebagai ekspresi reguler tidak kosong yang hanya terdiri dari
- karakter
0
dan1
, - tanda kurung pengelompokan
(
dan)
, - pengukur pengulangan satu atau lebih
+
.
Dengan string 0
s dan 1
s yang tidak kosong , program Anda harus menemukan regex sederhana terpendek yang cocok dengan string input penuh . (Yaitu, ketika mencocokkan regex sederhana, berpura-pura itu dibukukan oleh ^
dan $
.) Jika ada beberapa regex terpendek, cetak salah satu atau semuanya.)
kode-golf , jadi pengiriman terpendek (dalam byte) menang.
Uji kasus
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
adalah kasus yang menarik ... algoritma naif akan menulis 01+0+1+0
atau (0+1+)+0
yang tidak optimal.