DFA는 Deterministic Finite Automata의 약자입니다. 수용자 또는 수용자를 기반으로 하는 문자열을 수용하는 유한 상태 기계입니다.
여기에서 로 시작하고 끝나는 문자열을 허용하는 DFA를 만들 것입니다. 입력은 집합 (a,b)에서 가져옵니다. 이를 기반으로 DFA를 설계합니다. 이제 DFA에서 허용하는 몇 가지 유효한 사례와 잘못된 사례에 대해 논의해 보겠습니다.
DFA에서 허용하는 문자열:ababba, aabba, aa, a.
DFA에서 허용하지 않는 문자열:ab, b, aabab.
예
이 프로그램은 로 시작하고 끝나는 문자열을 확인합니다. 이 DFA는 로 시작하고 끝나는 모든 문자열을 허용합니다. 코드는 첫 번째 요소와 마지막 요소가 동일한지 확인하고 그 사이의 모든 요소는 (a,b)에서 가능합니다.
#include <iostream> #include <string.h> using namespace std; int main(){ char str[] = {"ababba"}; int lenght = strlen(str); if(str[0] == 'a' && str[lenght-1] == 'a'){ printf("Accepted"); else{ printf("Rejected"); return 0; } } }
출력
Accepted