leetcode 13.最长公共前缀

Posted 成成啊亲

tags:

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

 

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

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

 

 1 class Solution:
 2     def longestCommonPrefix(self, strs):
 3         """
 4         :type strs: List[str]
 5         :rtype: str
 6         """
 7         if len(strs) == 0:
 8             return ""
 9         if len(strs) == 1:
10             return strs[0]
11         else: 
12             return self.getCommonPrefix(strs,0,len(strs)-1)
13         
14     def getCommonPrefix(self,strs,left,right):
15         if left == right:
16             return strs[left]
17         elif right - left == 1:
18             return self.Prefix(strs[left], strs[right])
19         else:
20             mid = (left + right) // 2
21             astr = self.getCommonPrefix(strs, left, mid)
22             bstr = self.getCommonPrefix(strs, mid + 1, right)
23             return self.Prefix(astr, bstr)
24     
25     def Prefix(self,str1,str2):
26         prefix = ""
27         if len(str1)>len(str2):
28             tmp=str1
29             str1=str2
30             str2=tmp
31         for i,a in enumerate(str1):
32             if a==str2[i]:
33                 prefix = prefix+a
34             else:
35                 break
36                 
37         return prefix
38             

 

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

LeetCode第19天 - 14. 最长公共前缀

leetcode14最长公共前缀

leetCode第14题——最长公共前缀

[leetcode 14] 最长公共前缀

LeetCode:最长公共前缀

LeetCode:最长公共前缀