入力(a、b)からの「a」で開始および終了するDFAを構築するプログラム
DFAは、DeterministicFiniteAutomataの略です。これは、アクセプターに基づいて、またはストリングを受け入れる有限状態マシンです。
ここでは、で始まり、で終わる文字列を受け入れる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
-
C言語のループ制御ステートメントとは何ですか?フローチャートとプログラムで説明する
ループ制御ステートメントは、一連のステートメントを繰り返すために使用されます。それらは次のとおりです- forループ whileループ do-whileループ forループ 構文は次のとおりです- for (initialization ; condition ; increment / decrement){ body of the loop } フローチャート ループのフローチャートは次のとおりです- 初期化は通常、ループ制御変数を設定するために使用される割り当てステートメントです。 条件は、ループがいつ終了するかを決定する関係式です。
-
Cプログラムのリンクリストの最後からn番目のノードのプログラム
n個のノードがある場合、タスクはリンクリストの最後からn番目のノードを印刷することです。プログラムは、リスト内のノードの順序を変更してはなりません。代わりに、リンクリストの最後からn番目のノードのみを出力する必要があります。 例 Input -: 10 20 30 40 50 60 N=3 Output -: 40 上記の例では、最初のノードからカウントnノードまでのノードがトラバースされます(10、20、30、40、50、60)。したがって、最後から3番目のノードは40です。 リスト全体をトラバースする代わりに、この効率的なアプローチに従うことができます-