PHP算法之最长公共前缀

Posted 野香蕉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP算法之最长公共前缀相关的知识,希望对你有一定的参考价值。

### 解题思路
方法太笨重后期优化
循环比较
循环长度利用max(最长字符串的循环)
不满住条件的截取

### 代码
```php
class Solution {

    /**
     * @param String[] $strs
     * @return String
     */
    function longestCommonPrefix($strs) {
        $count = count($strs);
        $val = [];
        $len = 0;
        for($i=0;$i<$count;$i++){
            $arr = str_split($strs[$i],1);
            $len = max($len,strlen($strs[$i]));
            if($i==0){
                $val = $arr;
            }else{

                for($a = 0;$a < $len ;$a++){

                    if($val[$a] != $arr[$a]){

                        if($a==0){
                            return "";
                        }else{
                            $val = array_slice($val,0,$a);
                        } 
                        
                    }

                }

            }
        }  
        return str_replace(‘,‘,‘‘,implode(‘,‘,$val));   
    }
}
``
 
后期优化
 

$prefix = ‘‘;
$i = 0;
if(count($strs)<1){
return $prefix;
}
while(true){
$current = $strs[0]{$i};
if(!$current){
return $prefix;
}
foreach($strs as $str){
if($str{$i} != $current){
return $prefix;
}
}
$prefix .= $current;
$i++;
}
return $prefix;

作者:yytswcx

以上是关于PHP算法之最长公共前缀的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法之深入解析“最长公共前缀”的求解思路与算法示例

[PHP]算法-最长公共子串的PHP实现

算法日练-最长公共前缀

简单算法20.最长公共前缀

每日算法/刷穿 LeetCode14. 最长公共前缀(简单)

算法题---最长公共前缀