题12:字符串匹配Pabinkarp(上)

2023-11-18

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;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

题12:字符串匹配Pabinkarp(上) 的相关文章

随机推荐