LeetCode题库第十四题(简单系列)

题目及要求:

编写一个函数来查找字符串数组中的最长公共前缀。

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

示例 1:

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

示例 2:

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

说明:

所有输入只包含小写字母 a-z 。

思路:

看到题目的时候,第一想法是要用需要用到列表的切片,而且肯定是要遍历切片的,但是怎么求得strs里面元素每个元素的最小值呢???这是一个问题,然后我用了len(strs[i][m])的形式,来求最小值,后来自己运行之后再看出来,这个长度就是1,蠢哭。

在我尝试了n边,而且最后在LeetCode上面都运行错误的时候,我放弃了自己思考,转向了网络,怎么去寻求前人的知识,在看了一些文章以后,我决定以这个文章作为参考 Python实现-14.最长公共前缀,看到里面的方法之后,我有了大致的方向,于是我动手开始编码。。。。

class Solution:
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        m=0
        list1=[]
        list2=[]
        if len(strs)==0:
            return ""
        else:
            min_num = min([len(x) for x in strs])#求得最小的字符串长度
        if strs[0]=="":
            return ""
        while m 
  

以上代码长也就算了,居然还是报错了,恩,在LeetCode上面错误的位置进行修改还是通过不了,o(╥﹏╥)o,我已放弃思考。

重新再看了一遍文章,我决定按照第二个方法去编码。我要站在巨人的肩上看世界。

class Solution:
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        m=0
        if len(strs)==0:#当为空列表时
            return ""
        else:
            min_num = min([len(x) for x in strs])#求出最小的长度
        if len(strs)==1:#当字符串为""和只有只有1个字符串时
            return strs[0]


        while m 
  

这个通过了,虽然不是自己想到的方法,但是还是可耻的放个图吧。


你可能感兴趣的:(LeetCode简单系列,Leetcode题库练习)