编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
class Solution {
/**
* @param String[] $strs
* @return String
*/
function longestCommonPrefix($strs) {
if(empty($strs)) {
return '';
}
$minStr = $strs[0];
$minLength = strlen($strs[0]);
foreach($strs as $str) {
if(strlen($str)<$minLength) {
$minStr = $str;
$minLength = strlen($str);
}
}
for($i=$minLength;$i>0;--$i) {
$targetStr = $this->splitStr($minStr,$i);
$result = true;
foreach($strs as $str) {
if(substr($str,0,strlen($targetStr))!=$targetStr) {
$result = false;
}
}
if($result) {
return $targetStr;
}
}
return '';
}
private function splitStr($str,$length) {
return substr($str,0,$length);
}
}