利用PHP怎么求解最长的公共子串

  介绍

利用PHP怎么求解最长的公共子串?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强> LCS经典算法PHP版本

& lt; PHP ?   class  LCS {   public 才能;static  function 主要(){   ,,,//设置字符串长度   ,,,substringLength2 美元;=,20;   ,,,substringLength3 美元;=,20,,//具体大小可自行设置   ,,,选择美元=array_fill(0, 21日array_fill(0, 21日空));   ,,,//,随机生成字符串   ,,,x 美元;=,self:: GetRandomStrings ($ substringLength2);   ,,,y 美元;=,self:: GetRandomStrings ($ substringLength3);   ,,,startTime 美元;=,microtime(真正的);   ,,,//,动态规划计算所有子问题   ,,,for ($小姐:=,substringLength2 美元;作用;1;,小姐:美元祝辞=,0;,我——美元){   ,,,,,for  ($ j =, substringLength3 美元;作用;1;,j 美元;祝辞=,0;,j -美元){   ,,,,,,,if  ($ x [$ i],==, $ y [j]美元)   ,,,,,,,,,选择[$ i] [j]美元美元,=,选择美元($小姐:+,- 1)(j 美元;+,- 1),+,1;   ,,,,,,,   ,,,,,,,,,选择[$ i] [j]美元美元,=,马克斯(选择美元[小姐:美元+,1][j]美元,美元选择[$ i] [j 美元;+,1]);   ,,,,,}   ,,,}   ,,,echo “substring1:“$ x !”。\ r \ n";   ,,,echo “substring2:“$ y !”。\ r \ n";   ,,,echo “LCS:“;   ,,,小姐:美元=,0;   ,,,j 美元;=,0;   ,,,while (美元小姐:& lt;, substringLength2 美元;,,,j 美元;& lt;, substringLength3美元){   ,,,,,if  ($ x [$ i],==, $ y [j]美元){   ,,,,,,,echo  $ x[我]美元;   ,,,,,,,我+ +美元;   ,,,,,,,$ j + +;   ,,,,,},else  if (选择美元[小姐:美元+,1][j]美元,祝辞=,选择美元[$ i] [j 美元;+,1])   ,,,,,,,我+ +美元;   ,,,,,   ,,,,,,,$ j + +;   ,,,}   ,,,endTime 美元;=,microtime(真正的);   ,,,echo “\ r \ n";   ,,,echo “Totle  time  is “,只(endTime 美元;作用;开始时间美元),只“,s";   ,,}   public 才能static  function  GetRandomStrings(长度){   ,,,buffer 美元;=,“abcdefghijklmnopqrstuvwxyz";   ,,,str=懊涝?“;   ,,,(i=0; i<美元;$长度;美元我+ +){   ,,,,,$随机=兰德(0,strlen(缓冲区)美元1);   ,,,,,str美元。=$缓冲区(随机美元);   ,,,}   ,,,return  str美元;   ,,}   }   LCS: main ();   祝辞;

运行结果:

substring1: cgqtdaacneftabsxvmlb   substring2: suwjwwakzzhghbsmnksg   LCS: absm   Totle  time  is  0.000648975372314, s

看完上述内容,你们掌握利用PHP怎么求解最长的公共子串的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

利用PHP怎么求解最长的公共子串