BF算法和KMP算法(javascript版本)
2014-08-26 11:20
302 查看
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; } //KMP function 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; }
相关文章推荐
- [20081226更新(加了日文版本支持)]一个JavaScript WEB日历控件,支持IE6,FireFox,可支持不同语言版本,目前支持中文简繁,英,日语
- 兼容版本的无提示关闭窗口(JavaScript)!
- javascript从ActiveX控件中接收字符串(只适用于Unciode版本)
- 如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本?
- SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块
- SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块
- 各个Javascript引擎及版本的差异
- 如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本?【转】
- 用Javascript检测Flash插件是否安装以及版本
- Javascript:检测FlashPlayer版本的函数
- 自动生成文章摘要[JavaScript 版本]
- JavaScript 版本的 PHP serialize/unserialize 完整实现
- Javascript:检测FlashPlayer版本的函数
- 在JRE1.4.2以上版本中解决Javascript调用已签名Applet方法时提示没有权限问题
- [导入]JavaScript实现版本性能对比
- 一个JavaScript WEB日历控件,支持IE6,FireFox,可支持不同语言版本,目前支持中英文。
- JAVASCRIPT检查.NET FrameWork版本
- Javascript 版本的 Sprintf 字符串格式化函数
- SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块