您的位置:首页 > 其它

获取两个字符串之间最长公共字符串的函数

2012-11-27 18:14 253 查看
#-----------------------------------------------------------#
# 返回两个字符串中连续相同的最长的一部分 #
#-----------------------------------------------------------#
function getlongcom( $str1, $str2 ) {
$finalstr = '';                                                     //最终返回的字符串
$Fstr = (strlen( $str1 ) <= strlen( $str2 )) ? $str2 : $str1;       //长字符串为父串
$Sstr = (strlen( $str1 ) <= strlen( $str2 )) ? $str1 : $str2;       //短字符串为子串
$Sstrlen = strlen( $Sstr );                                         //子串的长度
for ( $i = 0; $i < $Sstrlen; $i++ ) {
$comstr = '';           //重置当前公共的字符串
$cutstr = substr( $Sstr, $i );     //当前截取的字符串
$cutstrlen = strlen( $cutstr ); //当前截取的字符串长度
for ( $j = 0; $j < $cutstrlen; $j++ ) {
$comstr.=$cutstr[$j];
if ( is_int( strpos( $Fstr, $comstr ) ) && strlen( $comstr ) > strlen( $finalstr ) ) {
$finalstr = $comstr;
}
}
}
return$finalstr;
}
//测试代码
$str1 = "aabcbcb";
$str2 = "aabcbabbcbacbcbb";
echo getlongcom( $str1, $str2 );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: