我想建立一個使用java的字符串匹配器。我有以下僞代碼。有限自動機字符串匹配器
對於有限自動機-匹配器算法來工作的過渡函數必須被計算。以下算法計算轉換函數計算給定模式P和字母σ。
在上面的代碼我無法理解哪兒來分鐘(M + 1,Q + 2)來自。 (我明白爲什麼它是k = min(m + 1,q + 2)而不是k = min(m,q + 1),但爲什麼我們希望m和q + 1的最小值在第一位)
在5-7行之間它將k減1,直到Pk是Pqa的後綴,但我不明白Pqa代表什麼。
另外,如何將第8行轉換爲java代碼?二維數組是否足夠了?還是我需要另一個數據結構?
一個相關的問題:string matching with finite automata