首页 > 代码库 > BF算法和KMP算法(javascript版本)
BF算法和KMP算法(javascript版本)
var str="abcbababcbababcbababcabcbaba";//主串var ts="bcabcbaba";//子串function BF(s,t){//BF算法 var i=0,j=0,v=-1; while(i<s.length&&j<t.length){ if(s[i]==t[j]){//相等就移动指针 i++; j++; } else{//指针归零 i=i-j+1; j=0; } } if(j==t.length){//判断是否 v=i-j; }else{ v=-1; } return v;}//KMPfunction GetNext(t,arr){ var k=-1,j=0; arr[0]=-1; while(j<t.length-1){ if(k==-1||t[j]==t[k]){ j++; k++; arr[j]=k; }else{ k=arr[k]; } }} function Kmp(s,t){ var pattern=new Array(t.length); var j=0,i=0,v=0; GetNext(t,pattern); while(i<s.length&&j<t.length){ if(j==-1||s[i]==t[j]){ i++; j++; } else{ j=pattern[j]; } } if(j>=t.length){ v=i-t.length; } else{ v=-1; } return v;}
BF算法和KMP算法(javascript版本)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。