Напишите регулярное выражение, описывающее множество

L {w | w содержит любое количество подстрок 00 и 11, причем одна из них встречается в любом месте w}

Я предполагаю, что, поскольку 1 может быть где угодно, поэтому Σ*001Σ*1Σ*11Σ* должно быть регулярным выражением. Есть мысли или исправления?

1 ответ

Разбейте определение языка на части:

L := { w | 
  w contains any number of substrings 00 and 11
  w contains one "1"
}

Первая часть на самом деле ничего не значит. "Любое количество подстрок 00 и 11" не может содержать подстрок. Это не значит, что строка должна содержать хотя бы один из них. Это эквивалентно Σ*,

Вторая часть говорит, что строка должна содержать 1 где-то в этом: Σ*1Σ*

Другие вопросы по тегам