本文章记录一下,Boyer-Moore算法java实现。
import java.util.*;
public class BoyerMoore {
public static void main(String[] args) {
String text="中国是一个伟大的国度;伟大的祖国啊";
String pattern="伟大的国度";
BoyerMoore bm=new BoyerMoore();
bm.boyerMoore(pattern, text);
}
private void preBmBc(String pattern,int patLength,Map<String,Integer> bmBc)
{
System.out.println("bmbc start process...");
for(int i=patLength-2;i>=0;i--)
{
if(!bmBc.containsKey(String.valueOf(pattern.charAt(i))))
{
bmBc.put(String.valueOf(pattern.charAt(i)),(Integer)(patLength-i-1));
}
}
}
private void suffix(String pattern,int patLength,int [] suffix)
{
suffix[patLength-1]=patLength;
int q=0;
for(int i=patLength-2;i>=0;i--)
{
q&#