Вам предоставляется 2 списка строк - A и B. Найдите кратчайшее регулярное выражение, которое соответствует всем строкам в и ни одному из B. Обратите внимание, что это регулярное выражение может соответствовать/не соответствовать другим строкам, которые не находятся в A, а не в Б. Для простоты можно предположить, что наш размер алфавита всего 2 символа - 0 и 1. Также допускаются только эти операторы:
* - 0 или больше
? - 0 или 1
+ - 1 или больше
() - скобки
Для простоты регулярное выражение не является допустимым. Я не знаю, разрешило бы или оператор (|) упростить проблему или нет. А и B, конечно, не имели бы общих элементов. Вот несколько примеров:
A=[00,01,10]
B=[11]
answer = 1*0+1*
A=[00,01,11]
B=[10]
answer = 0*1*