1, 题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: ["flower","flow","flight"]输出: "fl"
示例 2:
输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2, 算法
1, 排序
第一步, 排序第二步, 比较最大最小的公共前缀就是整个数组的公共前缀
#scala实现object Solution {def longestCommonPrefix(strs: Array[String]): String = {if (strs.isEmpty) {return ""}val arr = strs.sortedval s1 = arr(0)val s2 = arr.lasts1.zip(s2).takeWhile(x => x._1 == x._2).map(x => x._1).mkString("")}}
#python
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ''
strs = sorted(strs)
str_min = strs[0]
str_max = strs[-1]
for index, value in enumerate(str_min):
if value != str_max[index]:
return str_min[:index]
return str_min
