题目描述

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例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. 【力扣网练习题】最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  2. leetcode--最长公共前缀--python

    文章目录 题目 题目详情 示例 解题思路 代码 运行结果 最佳方案 题目 题目详情 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 ...

  3. 刻意练习:LeetCode实战 -- Task14. 最长公共前缀

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  4. LeetCode实战:最长公共前缀

    题目英文 Write a function to find the longest common prefix string amongst an array of strings. If there ...

  5. 【每日一算法】最长公共前缀

    微信改版,加星标不迷路! 每日一算法-最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["fl ...

  6. Algorithm——最长公共前缀

    一.问题 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1:输入: ["flower","flow& ...

  7. LeetCode14.最长公共前缀 JavaScript

    LeetCode14.最长公共前缀 JavaScript 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串"". 示例 1: 输入: [" ...

  8. LeetCode--014--最长公共前缀(java)

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  9. CSU1632Repeated Substrings(后缀数组/最长公共前缀)

    题意就是求一个字符串的重复出现(出现次数>=2)的不同子串的个数. 标准解法是后缀数组.最长公共前缀的应用,对于样例aabaab,先将所有后缀排序: aab 3    aabaab 1    a ...

  10. 算法------------ 最长公共前缀

    题目描述: 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "".示例 1:输入: ["flower","flow&q ...

最新文章

  1. float js 正则 验证_使用HTML和Vuejs进行表单验证
  2. VMware下centos7安装VMware Tools
  3. Swift typealias使用
  4. openstack(Queens版) 安装FWaaS
  5. 混合开发的坑(7) ---输入文本时,键盘遮挡
  6. 报错“Error running ‘Tomcat 9.0.17‘: Address localhost:1099 is already in use
  7. spark 2.4.5 简单使用
  8. Socket通信---网络通信学习笔记(一)
  9. 浏览器兼容性导致网址显示不完整
  10. 公司鼓励程序员不要加班,去约会!
  11. (88)Verilog HDL系统函数和任务:$fdisplay
  12. 自学几小时,斯坦福AI推测并复现了元素周期表 | 华裔团队研究
  13. cookie与session的比较
  14. 尔雅计算机基础答案山大,大学计算机基础2018尔雅满分答案
  15. 计算机网络·各应用层协议对应的传输层协议及端口号
  16. animation 详细讲解
  17. You Apple Developer Program membership expires in 12 days
  18. 笔耕不辍,无问西东——2018年终小结
  19. 【纯干货】Vue仿蘑菇街商城项目(vue+koa+mongodb)
  20. 基于FPGA的数字交通红绿灯Verilog开发Modelsim仿真

热门文章

  1. Rust: Vec用法及其它
  2. Kafka从上手到实践 - Kafka集群:启动Kafka集群 | 凌云时刻
  3. 桌面版IDE将迎终结,Github发布代码空间Codespaces | 凌云时刻
  4. 朴灵:云计算的开发者视界中,OpenAPI 是绝对主角 | 凌云时刻
  5. 【图像重建】基于matlab卷积神经网络的图像超分辨率重建【含Matlab源码 1816期】
  6. 毕设题目:Matlab通信
  7. 【阙值分割】基于matlab粒子群算法自适应多阈值图像分割【含Matlab源码 1459期】
  8. 【图像隐写】基于matlab GUI DCT数字水印嵌入与提取【含Matlab源码 1323期】
  9. 【财务预警】基于matlab BP神经网络财务预警【含Matlab源码 494期】
  10. dbscan js 实现_DBSCAN在PySpark上的实现