나는 이미 Stackoverflow에서 몇 가지 soultions 및 자습서를 읽었지만 특정 문제에 도움이되지 않습니다. 시작하려면 ,이 DFA 있습니다 DFA에서 정규 표현
를 그리고이 그것을 감소시킬 수있다 : 나는 (AA | 바 | CC)에서 정규 표현식을 가질 수 있도록
다하지만 누락 돌아 오는 d. 그것까지는 http://hackingoff.com/compilers/regular-expression-to-nfa-dfa으로 확인하면 시작 DFA와 정확히 같지만 d없이 보입니다. 나는 많이 시도했지만 RE를 d로 작성하는 방법을 잘 모르겠습니다.
'd'가 어디에 나타나야합니까? 귀하의 질문에 약간은 분명하지 않습니다. –
사실 그것은 제 질문입니다. 나는 그것이 정규 표현식에 속해있는 방법을 모르겠다. DFA는 가능하다고 말하지만 끝 부분에 나타나지 않아도됩니다. 그러나 그것이 나타나면 정규식이 처음부터 시작됩니다. 당신이 q1에서 그것을 끝낼 때까지 그리고 d0를 q0으로 돌려 보내지 않을 때까지. –
@TimBiegeleisen 그것은 나에게 꽤 분명합니다. 문자열은 시퀀스'(aa | ba | cc) c'이어야하며,'d '로 끝나지 않아야하지만'd'가 나타나면 다시 받아 들여지는 첫 번째 시퀀스가 필요합니다. 정규 표현식은'^ (?: aa | ba | cc) c (? : d (? aa | ba | cc) c) * $'와 유사 할 수 있습니다. – Xufox