基于KMP算法的Javascript实现方法分析 爱问知识人
学习基本面分析和技术分析方法 #生活技巧# #个人理财技巧# #股票基金教程#
算法的核心部分是部分匹配表和回归算法,部分匹配表的实现如下:
复制代码代码如下所示:
功能kmpgetstrpartmatchvalue(STR){
var前缀{ };
var后缀= };
无功partmatch = { };
对于(var i = 0,J = str.length;i< j;i++){
VaR纽世达= str.substring(0,i + 1);
如果(newstr.length = = 1){
我partmatch { } = 0;
{ { { }
对于(var = 0;k< i;K + +){
前缀{ } = newstr.slice K(0,k + 1);
后缀{ } = newstr.slice(K·K-1);
如果(前缀后缀=后缀= { }){
partmatch { } { } =前缀长度K;
}
}
如果(!partmatch {我}){
我partmatch { } = 0;
}
}
}
prefix.length = 0;
suffix.length = 0;
返回partmatch;
}
演示
var t =abcdabd ;
console.log(kmpgetstrpartmatchvalue(t));
/ /输出:{ 0,0,0,0,1,2,0 }
回滚算法的实现如下:
复制代码代码如下所示:
函数KMP(sourcestr,targetstr){
无功partmatchvalue = kmpgetstrpartmatchvalue(targetstr);
var = false;
对于(var i = 0,J = sourcestr.length;i< j;i++){
对于(var m = 0,n = targetstr.length;m<n;M + +){
如果(str.charat(M)= sourcestr.charat(I)){
如果(M = = targetstr。length-1){
结果=真;
打破;
{人}
++;
}
{人}
如果(m>0 partmatchvalue { M-1 } >0){
M = partmatchvalue { } 1 m-1;
{ { { }
打破;
}
}
}
如果(结果){
打破;
}
}
结果返回;
}
var s =英国广播公司段abcdabcdabde ;
var t =abcdabd ;
console.log(KMP(s,t));
输出:真的
全部
网址:基于KMP算法的Javascript实现方法分析 爱问知识人 https://www.yuejiaxmz.com/news/view/658205
相关内容
五大经典算法MI指标的原理和计算方法是什么? 爱问知识人
已知模式串t=‘abcaabbabcab’写出用KMP法求得的每个字符对应的ne
理财小知识(关于理财小知识的基本详情介绍) 爱问知识人
基于机器学习的服装搭配问题分析
费用现值法和年值法区别 爱问知识人
推荐系统算法的发展现状与挑战分析
基于多维度聚类算法的重庆住宅空调使用特征分析
冰箱除菌有什么方法? 爱问知识人
一种基于知识图谱的健康饮食推荐方法研究