题目难易程度: Easy
编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

思路:通过题意理解得到:输入的字符串列表中,每个字符串都必须有一个共同的前缀字符串,若字符串的同位置上的字符与其他字符串上字符不等时,就返回公共前缀,否则继续。
解题代码如下,执行效率与存储空间需要进行优化,以下是按照最常规思路编写。

class Solution(object):
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        if  strs:
            strs_min_str = sorted(strs, key=lambda x:len(x))[0]
            sum_str = ''
            for i in range(len(strs_min_str)):
                for y in strs:
                    if strs_min_str[i] == y[i]:
                        pass
                    else:
                        return sum_str
                sum_str += strs_min_str[i]
            return sum_str
        return ''


↙↙↙阅读原文可查看相关链接,并与作者交流