package string; public class BFDemo { public static int BF(String str,String sub,int pos ){//pos位置决定从主串的什么位置开始寻找 if(pos<0||pos>str.length()||sub.length()>str.length()){ return -1; } //开始查找 int i=pos; int j=0; //遍历主串和子串 while(i<str.length()&&j<sub.length()){ //判断对应下表是否相同 charAt()寻找索引对应的元素 if(j==-1l||str.charAt(i)==sub.charAt(j)){ i++; j++; }else{ i=i-j+1; j=0; } } //那种情况说明了子串在主串的位置 if(j>=sub.length()){// return i-j;//子串出现在主串上的某一位置 }else{ return -1;//子串不在主串上 } } public static void main(String[] args) { // TODO Auto-generated method stub String str="abcabcdabc"; String sub="abcd"; int index=BF(str,sub,0); System.out.println(index); } }
javaBF算法总结
猜你喜欢
转载自www.cnblogs.com/ioio2/p/9031865.html
今日推荐
周排行