题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
解题方法:
1.首先找到数组中长度最短的数据,与数组第一个数进行交换(公共前缀的长度肯定不会大于列表中长度最短的字符串)
2.接着 因为求最长公共前缀,将数组第一个数据依次与剩余的数据进行前n个数的比较,不相等,则比较前n-1个字符是否相等
代码:文章来源:https://www.toymoban.com/news/detail-810433.html
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
s1= len(strs)
if s1 == 0:
return ""
else:
s2 = strs[0]
t = 0
count = len(s2)
#获取列表字符串长度最短的数据
for i in range(1,s1):
if len(strs[i])<count:
t = i
count = len(strs[i])
#最短字符串与数组第一个数进行交换,方便后续比较
strs[0],strs[t] = strs[t],strs[0]
#找出最长公共前缀,以数组第一个数长度为比较次数
for i in range(count):
count1 = 1
#依次与数组剩余数据进行比较
for j in range(1,s1):
if strs[0][:count-i] == strs[j][:count-i]:
count1+=1
if count1 == s1:
return strs[0][:count-i]
return ""
ps:可以去掉else,去掉之后记得缩进 (因为是之前写的题,更改要缩进比较麻烦,就不处理了)文章来源地址https://www.toymoban.com/news/detail-810433.html
到了这里,关于leetcode14. 最长公共前缀的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!