LeetCode 14. Longest Common Prefix 最长公共前缀

链接

https://leetcode-cn.com/problems/longest-common-prefix/description/

要求

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。

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

输入: ["dog","racecar","car"]
输出: ""

相关代码

class Solution(object):
    def longestCommonPrefix(self, strs):
        
        if len(strs) == 0:
            return ''
        elif "" in strs:
            return ''
        elif len(strs) == 1:
            return strs[0]

        len_count = len(sorted(strs, key = len)[0])
        strs_cut = [x[0:len_count] for x in strs]
        
        while len(set(strs_cut)) > 1:
            strs_cut = [x[0:-1] for x in strs_cut]

        return strs_cut[0]
LeetCode 14. Longest Common Prefix 最长公共前缀_第1张图片
Snipaste_2018-08-23_13-34-55.png

心得体会

解题时试过的一些方法中对set去重后列表重新排序的方法

#使用sorted
strs = ['b', 'a', 'a', 'c']
strs_set = list(set(strs))
print sorted(strs_set ,key = strs.index)

#使用sort
strs = ['b', 'a', 'a', 'c']
strs_set.sort(key = strs.index)
print strs_set

打印结果均为['b', 'a', 'c']

你可能感兴趣的:(LeetCode 14. Longest Common Prefix 最长公共前缀)