leetcode14. 最长公共前缀 🌟

Posted catyuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode14. 最长公共前缀 🌟相关的知识,希望对你有一定的参考价值。

题目:

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

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

示例 1:

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

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

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

来源:力扣(LeetCode)
解答:

leetcode优秀方案:

 1 class Solution:
 2     def longestCommonPrefix(self, strs: List[str]) -> str:
 3         if len(strs)==0:    return ""
 4         if len(strs)==1:    return strs[0]
 5         strs.sort()
 6         p=""
 7         for x,y in zip(strs[0],strs[-1]):
 8             if x==y:
 9                 p+=x
10             else:
11                 break
12         return p
 1 class Solution:
 2     def longestCommonPrefix(self, strs: List[str]) -> str:
 3         if len(strs)==0:
 4             return ‘‘
 5         s1=min(strs)
 6         s2=max(strs)
 7         for i,v in enumerate(s1):
 8             if v!=s2[i]:
 9                 return s1[:i]
10         return s1
1 class Solution:
2     def longestCommonPrefix(self, strs: List[str]) -> str:
3         res = ""
4         for i in zip(*strs):
5             if len(set(i)) == 1:
6                 res += i[0]
7             else:
8                 return res
9         return res
 1 class Solution:
 2     def longestCommonPrefix(self, strs: List[str]) -> str:
 3         if len(strs) < 1:
 4             return ""
 5         index = 1
 6         prefix = strs[0]
 7         while index < len(strs):
 8             while prefix != strs[index][: len(prefix)]:
 9                 prefix = prefix[:-1]
10                 if len(prefix) < 1:
11                     return ""
12             index += 1
13         return prefix

个人愚见:

 1 class Solution:
 2     def longestCommonPrefix(self, strs: List[str]) -> str:
 3         common = ‘‘
 4         min_length = min([len(i) for i in strs])  if strs else 0
 5         for i in range(0, min_length):
 6             letter = set()
 7             for item in strs:
 8                 letter.add(item[i])
 9             if len(letter) == 1:
10                 common += item[i]
11             else:
12                 return common
13         return common

 

以上是关于leetcode14. 最长公共前缀 🌟的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 14 最长公共前缀

Leetcode--最长公共前缀(14)

python(leetcode)-14最长公共前缀

leetcode14-最长公共前缀

leetcode14-最长公共前缀

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