题目地址:https://leetcode-cn.com/problems/longest-common-prefix/
思路,先将值拆数组,取最短字符串为比较字符串,依次判断,不等就结束循环。
class Solution {
/**
* @param String[] $strs
* @return String
*/
function longestCommonPrefix($strs) {
$compare = 0;
$length = 0;
$pre = '';
$strCompare = [];
$count = 0;
foreach ($strs as $k => $str) {
if ($length == 0) {
$length = strlen($str);
$compare = 0;
} elseif (strlen($str) < $length) {
$length = strlen($str);
$compare = $k;
}
$strCompare[$k] = str_split($str);
$count++;
}
$compareArr = $strCompare[$compare];
unset($strCompare[$compare]);
$strCompare = array_values($strCompare);
foreach ($compareArr as $k1 => $char) {
for ($i = 0; $i < ($count - 1); $i++) {
if ($char != $strCompare[$i][$k1]) {
break 2;
}
}
$pre .= $char;
}
return $pre;
}
}