Может ли кто-нибудб посказать какдолжен вести себя НКА в созданный по регулярному выражению:
((a*)*)
Автомат строится такой:
3,1,2,4 — состояние с е(пустыми)-переходами
0 — из него астомат выходит только при получении 'а'
Он "напускается" на текст: bcdbcdbcd — тоесть в тексте 'а' не встречается не разу.
Автомат не находит a и из состояние 1 всегда переходит в сосояние 2. Состояние 2 — это внешняя (...)* операция, которая ни очем не догадываясь переходит снова в состояние 1 и т.д. Автомат зацикливается. Как можно решить данную проблемму? Может ли кто что посоветовать?
Зацикливание происходит и в такой ситуации:
автомат: ((first|third)*|second)*
строка: firstsecondfirstsecondttt