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]
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']

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容