【发布时间】:2016-08-17 16:24:39
【问题描述】:
我正在尝试使用 java 构建一个 FA 字符串匹配器。我有以下伪代码。
为了使有限自动机匹配器算法起作用,必须计算转换函数。以下算法 Compute-Transition-Function 计算给定模式 P 和字母 sigma。
在上面的代码中,我无法理解 min(m + 1, q + 2) 是从哪里来的。 (我确实理解为什么它是 k = min(m + 1, q + 2) 而不是 k = min(m, q + 1) 但为什么我们首先想要 m 和 q+1 的最小值)
在第 5-7 行之间,它将 k 减一,直到 Pk 是 Pqa 的后缀,但我不明白 Pqa 代表什么。
另外,如何将第 8 行转换为 java 代码?一个二维数组就足够了吗,还是我需要另一个数据结构。
【问题讨论】:
标签: java string algorithm string-matching finite-automata