实现逻辑:
- 获取数组中所有元素公共前缀
- 用公共前缀匹配每一个元素,查找符合条件的字符串
欢迎猿猿们留言指导。
其他语言实现请参考以下链接。
https://leetcode.com/problems/longest-common-prefix/solution/
代码块
function getCommonPreLongStr()
{
$array = [ 'leets','leetcode','leetc','aaaaa','le'];
$pre = '';
foreach ($array as $v){
if(empty($pre)){
$pre = $v;
}else{
//将字符串分割成数组,取两个数组的交集
$res = implode('',array_intersect(str_split($pre),str_split($v)));
//不存在公共部分,不做处理
if(isset($res)){
$pre = $res;
}
}
}
//通过前缀获取最长字符串
$res = '';
foreach ($array as $value){
$match = strstr($value,$pre);
if(empty($res)){
$res = $match;
}else{
if(strlen($match) > strlen($res)){
$res = $match;
}
}
}
var_dump($res);die;
return $res;
}