LeetCode_14_python_最长公共前缀
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例1
输入: ["flower","flow","flight"]
输出: "fl"
示例1
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。则输出空串
相关函数
zip()函数:
zip函数时Python的一个内置函数,可以将不同可迭代对象中的元素对应放入一个个元组中,并以列表的方式返回出来,给大家一些例子,一看就明白:
输入:
a = [1,2,3]
b = [4,5,6]
c = zip(a,b) # 当a,b等长时!
输出:
[(1, 4), (2, 5), (3, 6)]
输入:
a = [1,2,3]
b = [4,5,6,7,8]
c = zip(a,b) # 当a,b不等长时,以最短的长度为准
输出:
[(1, 4), (2, 5), (3, 6)]
输入:
a = [(1, 4), (2, 5), (3, 6)]
zip(*a)
输出:
[(1, 2, 3), (4, 5, 6)]
题目分析
- 通过zip()函数把列表中不同元素(字符串),对应放进一个元组中!
- 例如输入:strs = [“flower”,“flow”,“flight”],则返回出(f,f,f),(l,l,l),(o,o,i)等等
- 要查找字符串中的最长的公共子串,则上面的元组中元素一致,则说明是公共子串,如(f,f,f),(l,l,l)
- 所以要从一开始看元组中的元素是否一致,直到不一致为止,这一段就是公共子串。
- 我们利用set()没有重复元素的性质,将元组中的元素化简,当长度为1时,表示是公共子串,不等于1,则返回!
详细代码
class Solution:def longestCommonPrefix(self, strs):re = "" # 新的空串for i in zip(*strs): # 遍历所用的元组re_set = list(set(i)) # 删除元组中重复的元素if len(re_set) == 1: # 判断是否为1re += re_set[0] # 为1则说明是公共子串,添加进去else: # 不是,则直接跳出breakreturn re
验证
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]
输出: ""
LeetCode_14_python_最长公共前缀相关推荐
- 【力扣网练习题】最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
- leetcode--最长公共前缀--python
文章目录 题目 题目详情 示例 解题思路 代码 运行结果 最佳方案 题目 题目详情 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 ...
- 刻意练习:LeetCode实战 -- Task14. 最长公共前缀
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
- LeetCode实战:最长公共前缀
题目英文 Write a function to find the longest common prefix string amongst an array of strings. If there ...
- 【每日一算法】最长公共前缀
微信改版,加星标不迷路! 每日一算法-最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["fl ...
- Algorithm——最长公共前缀
一.问题 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1:输入: ["flower","flow& ...
- LeetCode14.最长公共前缀 JavaScript
LeetCode14.最长公共前缀 JavaScript 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串"". 示例 1: 输入: [" ...
- LeetCode--014--最长公共前缀(java)
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
- CSU1632Repeated Substrings(后缀数组/最长公共前缀)
题意就是求一个字符串的重复出现(出现次数>=2)的不同子串的个数. 标准解法是后缀数组.最长公共前缀的应用,对于样例aabaab,先将所有后缀排序: aab 3 aabaab 1 a ...
- 算法------------ 最长公共前缀
题目描述: 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "".示例 1:输入: ["flower","flow&q ...
最新文章
- float js 正则 验证_使用HTML和Vuejs进行表单验证
- VMware下centos7安装VMware Tools
- Swift typealias使用
- openstack(Queens版) 安装FWaaS
- 混合开发的坑(7) ---输入文本时,键盘遮挡
- 报错“Error running ‘Tomcat 9.0.17‘: Address localhost:1099 is already in use
- spark 2.4.5 简单使用
- Socket通信---网络通信学习笔记(一)
- 浏览器兼容性导致网址显示不完整
- 公司鼓励程序员不要加班,去约会!
- (88)Verilog HDL系统函数和任务:$fdisplay
- 自学几小时,斯坦福AI推测并复现了元素周期表 | 华裔团队研究
- cookie与session的比较
- 尔雅计算机基础答案山大,大学计算机基础2018尔雅满分答案
- 计算机网络·各应用层协议对应的传输层协议及端口号
- animation 详细讲解
- You Apple Developer Program membership expires in 12 days
- 笔耕不辍,无问西东——2018年终小结
- 【纯干货】Vue仿蘑菇街商城项目(vue+koa+mongodb)
- 基于FPGA的数字交通红绿灯Verilog开发Modelsim仿真
热门文章
- Rust: Vec用法及其它
- Kafka从上手到实践 - Kafka集群:启动Kafka集群 | 凌云时刻
- 桌面版IDE将迎终结,Github发布代码空间Codespaces | 凌云时刻
- 朴灵:云计算的开发者视界中,OpenAPI 是绝对主角 | 凌云时刻
- 【图像重建】基于matlab卷积神经网络的图像超分辨率重建【含Matlab源码 1816期】
- 毕设题目:Matlab通信
- 【阙值分割】基于matlab粒子群算法自适应多阈值图像分割【含Matlab源码 1459期】
- 【图像隐写】基于matlab GUI DCT数字水印嵌入与提取【含Matlab源码 1323期】
- 【财务预警】基于matlab BP神经网络财务预警【含Matlab源码 494期】
- dbscan js 实现_DBSCAN在PySpark上的实现