LeetCode第四天

今天是周五,元宵节。猿宵节,是程序猿通宵赶代码的中国传统节日。在此佳节来临之际,恭祝全国程序猿节日快乐,永不加班!

14. Longest Common Prefix 求最长公共前缀,这道题是求一个List里面所有字符串的最长公共前缀,其实就是按位比对字符即可,如果相同,记录上,当不符合条件时,返回记录上的即可。有一个问题就是要,取List里面最短字符串的长度,然后遍历就可以了。

class Solution:
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        number = len(strs)
        result = ""
        minimum = 999 
        flag = 0
        for string in strs: 
            if minimum > len(string):
                minimum = len(string)
        print(minimum)  # 记录List中最短的字符串长度,后面比对的时候直接比这么长就行,再长也没用了
        if number == 0:
            return ""
        elif number == 1:
            return strs[0]
        else:
            for i in range(0, minimum):
                tmp = strs[0][:i+1]  # 把List里面第一个string作为基准,挨个比对
                num = 0
                for string in strs:
                    if tmp == string[:i+1]:  # 比对string的前i+1位
                        num += 1  # 记录当前与第一个string相同的个数,如果等于List长度,就证明整个List都有这个字符,记录下来
                    if num == number :
                        result = tmp
            return result

 

posted @ 2018-03-02 22:31  Vancuicide  阅读(113)  评论(0)    收藏  举报