最长公共前缀 python_Python求一批字符串的最长公共前缀算法示例

本文实例讲述了Python求一批字符串的最长公共前缀算法。分享给大家供大家参考,具体如下:

思路一:这个题一拿到手,第一反应就是以第一个字符串strs[0]为标准,如果其他字符串的第一个字符和str[0]的第一个字符串相同,则再比较第二个字符串,以此类推直到出现不同为止。

def longestCommonPrefix(self, strs):

"""

:type strs: List[str]

:rtype: str

"""

if not strs:

return ""

first_str = strs[0]

other_strs = strs[1:]

prefix = ""

for i in first_str:

prefix += i

for s in other_strs:

if not s.startswith(prefix):

return prefix[:-1]

return prefix

思路二:第二种方法,就是先比较前两个字符串,求出他们的最长公共前缀,再用这个前缀去跟第三个字符串比较求出新的公共前缀,以此类推

class Solution(object):

def longestCommonPrefix(self, strs):

"""

:type strs: List[str]

:rtype: str

"""

if not strs:

return ""

if len(strs) == 1:

return strs[0]

prefix = strs[0]

for i in range(len(strs)-1):

if not prefix:

return ""

prefix = self.getCommonPrefix(prefix,strs[i+1])

return prefix

#先定义一个函数求出两个字符串的最长公共前缀

def getCommonPrefix(self,str1,str2):

if not str1 or not str2:

return ""

prefix = ""

for s in str1:

prefix += s

if not str2.startswith(prefix):

return prefix[:-1]

return prefix

不过测试了一下,第一种方法还要快一点。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

本文标题: Python求一批字符串的最长公共前缀算法示例

本文地址: http://www.cppcns.com/jiaoben/python/253668.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值