打印boyermoore中所有匹配项的索引

uttx8gqw  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(155)

我在java中发现了boyer-moore算法的这个实现。问题是它只显示第一次出现的索引。如何编辑此代码以使其输出所有匹配项?

public int BoyerMoore() {
        // Preprocessing
        computeLast();
        computeMatch();

        // Searching
        int i = pattern.length() - 1;
        int j = pattern.length() - 1;
        while (i < text.length()) {
            if (pattern.charAt(j) == text.charAt(i)) {

                if (j == 0) {
                    System.out.println(i);
                    return i;
                }
                j--;
                i--;
            } else {
                i += pattern.length() - j - 1 + Math.max(j - last[text.charAt(i)], match[j]);
                j = pattern.length() - 1;
            }
        }
       return -1;
    }

我有使用arraylist或list的想法,但我对java集合没有深入的了解。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题