package 字符串问题;
public class case12_字符串匹配之Pabinkarp {
public static void main(String[] args) {
String s="ABABABA";//源字符串
String p="BAB";//模式字符串
macth(p,s);
}
private static void macth(String p, String s) {
long hash_p=hash(p);
int p_len=p.length();
for(int i=0;i+p_len<=s.length();i++){
long hash_i=hash(s.substring(i,i+p_len));
if(hash_i==hash_p){
System.out.println("macth:"+i);
}
}
}
//求hash值
final static long seed=31;
static long hash(String str){
long hash=0;
for(int i=0;i!=str.length();i++){
hash=seed*hash+str.charAt(i);
}
return hash;
}
}