美文网首页
LeetCode 14. Longest Common Pref

LeetCode 14. Longest Common Pref

作者: singed | 来源:发表于2018-08-23 13:33 被阅读0次

链接

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

相关文章

网友评论

      本文标题:LeetCode 14. Longest Common Pref

      本文链接:https://www.haomeiwen.com/subject/svwpiftx.html