English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
DFA означает детерминированный конечный автомат. Это конечный автомат, который может принимать или отклонять строки на основе своего акцептора.
Здесь мы создадим DFA, который принимает строки, начинающиеся и заканчивающиеся на 'a'. Вход поступает из множества (a, b). На основе этого мы спроектируем DFA. Теперь давайте обсудим некоторые эффективные и неэффективные случаи, которые принимает DFA.
Строки, которые DFA принимает: ababba, aabba, aa, a.
Строки, которые DFA не принимает: ab, b, aabab.
Эта программа проверяет строки, начинающиеся и заканчивающиеся на 'a'. Этот DFA принимает все строки, начинающиеся и заканчивающиеся на 'a'. Код проверяет, равны ли первый и последний элементы, и может поместить между ними все содержимое (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("Принят"); else{ printf("Отказано"); возврат 0; } } }
Результат вывода
Принят