编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”] 输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”] 输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解法:
我们从前往后枚举字符串的每一列,先比较每个字符串相同列上的字符(即不同字符串相同下标的字符)然后再进行对下一列的比较。
PHP
class Solution {
/**
* @param String[] $strs
* @return String
*/
function longestCommonPrefix($strs) {
$arrlen = count($strs);
if ($arrlen == 0) {
return '';
}
$strlen = strlen($strs[0]);
for ($i = 0; $i < $strlen; $i++) {
for ($j = 1; $j < $arrlen; $j++) {
if ($strs[$j][$i] != $strs[0][$i]) {
if ($i == 0) {
return '';
}
return substr($strs[0], 0, $i);
}
}
}
return $strs[0];
}
}
GO
func longestCommonPrefix(strs []string) string {
arrlen := len(strs)
if arrlen == 0 {
return ""
}
strlen := len(strs[0])
for i := 0;i < strlen;i++ {
for j := 1;j < arrlen;j++ {
tmpLen := len(strs[j])
if tmpLen - 1 < i || strs[j][i] != strs[0][i] {
if i == 0 {
return ""
}
return strs[0][0 : i]
}
}
}
return strs[0]
}