Детерминированный конечный автомат (DFA) принимает строки - PullRequest
0 голосов
/ 31 октября 2018

Создайте DFA, который принимает следующую строку A (B | (BC +)) * C, я не очень хорошо понимаю последовательность строки

1 Ответ

0 голосов
/ 03 ноября 2018

Строка A(B|(BC+))*C обычно является регулярным выражением. В вашем случае:

| means OR
+ means one or more occurrence of previous symbol
* means zero or more occurrence of previous symbol

Базовое преобразование:

AB  --> {q0, A, q1}, {q1, B, q2}
A|B --> {q0, A, q1}, {q0, B, q1}
A+  --> {q0, A, q1}, {q1, A, q1}
A*  --> {q0, A, q0}

{q0, s, q1} означает переход из состояния q0 в q1 путем чтения символа s

Вы можете сначала попробовать это сами для своего случая. Если вы обнаружите затруднения, дайте комментарий.

...