Я выполняю задание для теории автоматов, которое я должен определить, принимается ли слово или нет функцией перехода для детерминированного конечного автомата
У меня есть этот входной файл:
6 8 0 2
2
5
0 0 a
0 1 a
1 1 b
1 2 c
1 3 c
3 4 d
4 4 d
4 5 d
3
aaabcccc
aabbbbcdc
acdddddd
Ввод начинается с 4 целых чисел, первым является число состояний для автомата, затем число переходов автомата, третье число - начальное состояние, а затем число конечных состояний. затем приходят конечные состояния (в примере конечные состояния равны 2 и 5).
Затем наберите N строк (N - количество переходов), каждая из которых имеет 2 целых числа и символ I, J и C, представляющие состояния, в которых переход, т.е. переход переходит из состояния я в состояние J с символ C. После этой строки вы получите единственное целое число S, которое будет содержать количество строк для проверки, затем S строк с соответствующими строками.
Выход этой программы должен быть:
Case #2:
aaabcccc Rejected
aabbbbcdc Rejected
acdddddd Accepted
Он должен сказать, принимается или отклоняется String. До сих пор я только кодировал работу с вводом.
Я не знаю, как было бы наиболее удобно представлять автомат. Должен ли я просто использовать массивы? Какую логику я бы применил к массивам?. Есть ли способ сделать это, не зная заранее автомат-алфавит? Мне нужна структура данных для представления автоматов?. Я немного застрял в этом задании и хотел бы, чтобы некоторые идеи, некоторые псевдокоды или идеи сделали это. Является ли код на другом языке? Я не хочу решения, потому что я хочу выполнить свое задание, но если бы я мог использовать некоторую помощь