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             

原文地址:https://www.cnblogs.com/chengchengaqin/p/9508961.html

时间: 2024-08-01 18:39:19

leetcode 13.最长公共前缀的相关文章

LeetCode:最长公共前缀【14】

LeetCode:最长公共前缀[14] 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存

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

编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀. 说明: 所有输入只包含小写字母 a-

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

14. 最长公共前缀 14. Longest Common Prefix 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". LeetCode14. Longest Common Prefix 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racec

LeetCode 7最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀. 说明: 所有输入只包含小写字母 a-

[leetcode 14] 最长公共前缀

写一个函数可以查找字符串中的最长公共字符. 示例: 输入:["flower","flow","flight"] 输出:"fl" 输入:["dog","racecar","car"] 输出:" " (不存在公共的字符串) 代码: class Solution: def longestCommonPrefix(self,strs): "&qu

leetcode——Longest Common Prefix 最长公共前缀(AC)

Write a function to find the longest common prefix string amongst an array of strings. 其实做起来会感觉很简单,需要注意的是要考虑效率的问题,毕竟可能是很长的字符串数组,所以可以考虑选取所有字符串中最短的那个来首先进行比较,因为最长公共子串肯定不会大于其长度,这样避免了字符串之间长度差异很大造成的效率损失,然后每次比较之后最长公共子串的长度也永远不会大于最短的那个字符串,只会不变或减小,只要遍历字符串数组,挨个

LeetCode Longest Common Prefix 最长公共前缀

题意:给多个字符串,返回这些字符串的最长公共前缀. 思路:直接逐个统计同一个位置上的字符有多少种,如果只有1种,那么就是该位是相同的,进入下一位比较.否则终止比较,返回前缀.可能有一个字符串会比较短,所以前缀最长也只是最短字符串的长度. 1 class Solution { 2 public: 3 string longestCommonPrefix(vector<string>& strs) { 4 string ans=""; 5 if(strs.empty()

LeetCode 最长公共前缀(探索字节跳动)

题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀. 说明: 所有输入只包含小写

LeetCode第14题 最长公共前缀

/* 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". ["flower","flow","flight"] */ 思路1:时间复杂度为O(n*m),遍历数组 ,相同元素放入Stringbuilder中. 1 class Solution14 { 2 3 public String longestCommonPrefix(String[] strs) { 4 if (strs.lengt