您的位置:首页 > 编程语言 > PHP开发

PHP之找任意两个字符串的最大相同部分

2015-04-08 22:29 246 查看
<p style="TEXT-INDENT: 2em">【题目背景】本题的题面是:<strong>输出任意两个字符串的最大相同部分。</strong>比如:字符串abcdsss和字符串sdcdsrf的最大相同部分是cds。 </p><p style="TEXT-INDENT: 2em">【题目解法】穷尽法 </p>
<?php
/*** 找两个字符串相同的部分**/function main($str1, $str2) {//将字符串转成数组$arr1 = str_split($str1);$arr2 = str_split($str2);//计算字符串的长度$len1 = strlen($str1);$len2 = strlen($str2);//初始化相同字符串的长度$len = 0;//初始化相同字符串的起始位置$pos = -1;for ($i = 0; $i < $len1; $i++) {for ($j = 0; $j < $len2; $j++) {//找到首个相同的字符if ($arr1[$i] == $arr2[$j]) {//判断后面的字符是否相同for ($p = 0; (($i + $p) < $len1) &&(($j + $p) < $len2) &&($arr1[$i + $p] == $arr2[$j + $p]) &&($arr1[$i + $p] <> ''); $p++);if ($p > $len) {$pos = $i;$len = $p;}}}}if ($pos == -1) {return ;} else {return substr($str1, $pos, $len);}}echo main("abcdsss", "sdcdsrf");?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: