✏Leetcode之PHP版题目解析(14. Longest Common Prefix)
✏描述
这是一道字符串匹配的题,让我们求公共字符串前缀。
✏题目实例
✏题目分析
对于这一类题目,肯定都需要遍历对比一下,先来一种常规的思路,因为只要给定数组中元素当前位置有一个不同,那么公共字符串前缀就是从0截取到当前位置的上一个位置。所以我先随便拿出一个参照点(数组第一个元素),第一层遍历元素中的值,嵌套循环中遍历数组之后的元素,然后进行对比判断。最后得出结果。
✏解法一
/**
* @param String[] $strs
* @return String
*/
function longestCommonPrefix($strs) {
if(empty($strs)) return "";
for($i=0;$ilongCommon($strs,0,count($strs)-1);
}
function longCommon($strs,$l,$r)
{
if($l==$r) return $strs[$l];
else{
$mid = $l+(($r-$l)>>1) ;
$left=$this->longCommon($strs,$l,$mid);
$right=$this->longCommon($strs,$mid+1,$r);
return $this->commonPrefix($left,$right);
}
}
function commonPrefix($left,$right)
{
$min=min(strlen($left),strlen($right));
for($i=0;$i<$min;$i++){
if($left[$i] != $right[$i]){
return substr($left,0,$i);
}
}
return substr($left,0,$min);
}
转载链接:https://leetcode.cn/