介绍
利用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怎么求解最长的公共子串的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!