Я застрял в написании регулярного выражения для данного языка над алфавитом {a,b}
. Строки принимаются, если они начинаются с подстроки «aa» или заканчиваются подстрокой «bb».Конечные автоматы и регулярное выражение
Например, {aab, abb, aaba}
принимаются, но {Λ, ab, abaa}
- нет.
Попын. Решение: {aa* + ab* + bb*}
, но я подумал: что, если строка началась с b
? Тогда мое выражение не сработало бы.
Любая помощь была бы замечательной!
Я так не думаю, ваше решение обеспечивает «aa» и «bb» в конце каждой строки, поэтому «ababb» не будет работать – user3197786
^aa [a, b] * | [a, b] * bb $ означает^aa [a, b] * или [a, b] * bb $. Так ababb будет работать для [a, b] * bb $. Возможно, я не совсем понял ваш вопрос. Является ли | знак разрешен в ваших автоматах? –