0
我製作了來自正則表達式3d數組的NFA,例如(01 *)表達式。我得到它:如何檢查我的線是否與NFA相符?
[[FROM,TO,TRANSITION]]
[['q0', 'q1', '0'], ['q1', 'q2', ':e:'] ,['q1', 'q4', ':e:'] ,
['q2', 'q3', '1'], ['q3', 'q2', ':e:'], ['q3', 'q4', ':e:']
如何編寫一個方法,可以測試滿足此自動機的字符串?例如"011111"
將返回q0 q1 q2 q3 q2 q3 q2 q3 q2 q3 q2 q3 q4
那麼,如果自動機是確定性的,你會知道該怎麼做嗎? – timgeb
(如果是的話,將搜索引擎foo應用於構建DFA的算法) – timgeb
您可以使用很多現有的庫,因此您不必重新編寫該weel。我建議使用http://www.brics.dk/automaton/,這是一種適用於Java的工業強度,易於使用的自動機包。它確實是你想要的。如果您需要更多關於爲了匹配給定字符串而採取的特定轉換的更多信息,擴展Automaton類也很容易。 – Julian