python(leetcode)-14最长公共前缀
2019-02-27 11:54:05来源:博客园 阅读 ()
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a-z 。
这题比较好理解,给定一个列表,查询列表中的公共前缀
自己的想法是直接暴力法解决,将列表的第一个值作为对比值,通过一层for循环不断遍历对比值与其他元素是否相等,如果相等则继续对比,如果不等return比较过的值。
上代码(40ms)击败12%用户
1 class Solution(object): 2 def longestCommonPrefix(self, strs): 3 """ 4 :type strs: List[str] 5 :rtype: str 6 """ 7 sig=True 8 i=0 9 if(strs==[] ): #判断是否为空 10 return "" 11 if(len(strs)==1): #判断是否只有一个值 12 return strs[0] 13 if ("" in strs): #判断有没有空值 14 return "" 15 while(sig==True ): #sig是一个bool类型值 True继续判断 False中断返回 16 if(len(strs[0])<=i): #判断对比值是否越界 17 return strs[0][0:i] 18 temp=strs[0][i] #第i个字符 19 for j in strs[1:]: 20 if(temp!=j[i] ): #如果第i字符不匹配 则返回前i-1个字符 21 return strs[0][0:i] 22 elif(temp==j[i] and len(j)==i+1): #如果第i字符为最后一个一字母,则不继续对比,返回前i个 23 sig=False 24 k=i 25 i += 1 26 return strs[0][0:k+1] 27 if __name__=="__main__": 28 s=Solution() 29 li=["flower","flo","flight"] 30 print(s.longestCommonPrefix(li))
看了评论区大佬的代码,觉得有一个想法特别好
上代码(28ms)击败94%
1 class Solution(object): 2 def longestCommonPrefix(self, strs): 3 """ 4 :type strs: List[str] 5 :rtype: str 6 """ 7 if not strs: return "" 8 if len(strs) == 1: return strs[0] 9 10 strs.sort() 11 p = '' 12 for x, y in zip(strs[0], strs[-1]): 13 if x == y: 14 p += x 15 else: 16 break 17 return p 18 if __name__=="__main__": 19 s=Solution() 20 li=["flower","fl","flight"] 21 print(s.longestCommonPrefix(li))
解释一下:
前两句没啥好说的,判断特殊情况
然后进行排序,直接将第一个元素和最后一个元素对比,提取出相同字符。
特点:排序后的列表,不需要对比中间的元素 直接对比最后两个即可。
原文链接:https://www.cnblogs.com/bob-jianfeng/p/10436557.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:python笔记(1)
下一篇:python pumysql存储
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash