题目描述

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]

输出: "fl"

示例 2:

输入: ["dog","racecar","car"]

输出: ""

解释: 输入不存在公共前缀。

考点

  1. 根据列表中的字符串长度排序
  2. 两层for循环的使用,for|else的使用

算法1

从下标0开始,判断每一个字符串同一索引所对应的值,判断是否全部相同。直到遇到不全部相同的时候return。

由于提供的单词长度不同,应该以最小单词为基准进行比较,如["flower","flow","flight"]中应该以flow来和剩下的单词一一对比。

  1. 所有单词同一索引所对应的值相等,则更新最长公共前缀
  2. 有一个单词与其他单词同一索引所对应的值不相等,则返回最后更新的最长公共前缀

代码1

def longestCommonPrefix(strs):""":type strs: List[str]:rtype: str"""strs.sort(key =len)# 根据列表中的字符串长度排序if not strs:return ''result = ''#记录公共前缀for i in range(len(strs[0])):#以列表中长度最小的单词为基准进行遍历for j in strs:#遍历列表中的每个字符串if j[i] != strs[0][i]:#如果列表中的字符串的对应下标是否相同return resultelse:result += strs[0][i]#如果所有字符串下标都相同,更新最长公共前缀return result
print(longestCommonPrefix([""]))

算法2

利用python的max()和min(),在Python里字符串是可以比较的,按照ascII值排,举例abb,aba,abac,最大为abb,最小为aba。所以只需要比较最大最小的公共前缀就是整个数组的公共前缀

代码2

    def longestCommonPrefix(self, strs):""":type strs: List[str]:rtype: str"""s1 = min(strs)s2 = max(strs)for i,x in enumerate(s1):if x != s2[i]:return s2[:i]return s1

转载于:https://www.cnblogs.com/hyj691001/p/10799710.html

20190501-编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串...相关推荐

  1. LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)

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

  2. python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value)

    python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value) 目 ...

  3. 请编写一个函数,接收两颗星星赤经和赤纬的角度作为参数,计算并返回这两颗星星所对弧的角度。

    [问题描述] 给定两颗星星的赤经和赤纬的角度 (a1, d1)和(a2, d2) 它们所对弧的角度计算公式为: 赤经a1和a2是 -180o~ 180o 之间的角,a=a2-a1 赤纬d1和d2是 - ...

  4. 求行指针所指的字符串数组中长度最长的字符串所在的行下标

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p137 习题5 3.行指针ss所指字符串数组中共有M个字符串,且字符串长度<N.求ss所指字符串 ...

  5. 怎样设置一个函数C语言,C语言中怎样编写一个函数 如何在C语言中定义一个函数?...

    如何在C语言中定义一个函数?小编很想在你面前流泪最后却还是选择装作打个哈欠 为什么小编怎么定义函数都不正确呢? 总是说小编 表达语法错误在main函数中 小编们可以在头文件与main函数之间定义,并编 ...

  6. 用Java编辑员工信息_编写一个函数来显示基于Oracle中特定部门的员工信息?

    这些是我创建的表的列表,并为创建的表插入值: CREATE TABLE DEPARTMENT (DEPARTMENT_ID NUMBER PRIMARY KEY, DEPARTMENT_NAME VA ...

  7. JS编写一个函数,实现传入一个不定长度字符串,查找出重复次数前n名的字符并分别统计其次数

    编写一个函数,实现传入一个不定长度字符串,查找出重复次数前n名的字符并分别统计其重复次数.写得好像比较复杂,大家有更好的方法欢迎留言指导,谢谢. function compare(string, n) ...

  8. 4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次放在pp所指数组中。

    4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中"a"到"z"26个字母各自出现的次数,并依次放在pp所指数组中. ...

  9. C语言编程>第十一周 ⑤ 请编写一个函数,用来删除字符串中的所有空格。

    例题:请编写一个函数,用来删除字符串中的所有空格. 例如,输入we l come,则输出为welcome. 请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句. ...

最新文章

  1. 凸显价值:全国CIO交流大会7月20-22日将于青海举办
  2. Android开发:第四日番外——Assets文件夹和RAW文件夹区别
  3. 所罗门王之梦(程序员羊皮卷读书笔记)
  4. VSS(2005)中如何强行签入文件
  5. 在Teams app代码中enable nullable
  6. Primefaces dataTable设置某个cell的样式问题
  7. 开启mongodb数据库命令行_【赵强老师】使用MongoDB的命令行工具:mongoshell
  8. Java中注解与反射的使用方法及场景,强行解释一波!
  9. iOS 8 新特性介绍
  10. 打造网红内容和资本哪个更重要
  11. 思想篇(1)--企业需要什么样的人才?
  12. Java1.8安装win10_java1.8环境配置+win10系统
  13. Django 系列博客(二)
  14. 3.6 tensorflow 中LSTM和GRU模块使用意境级讲解
  15. 计算机二级java难吗_计算机二级上机-计算机二级难吗?二级高级语言:分笔试和上机考试笔试90分钟, 爱问知识人...
  16. 必须收藏!Jboss下载(全版本秒下载!)
  17. 深度学习论文阅读目标检测篇(六)中英对照版:YOLOv3《 An Incremental Improvement》
  18. 项目xx方案文档格式规范模板
  19. WindowsCMD配置代理
  20. 从零开始学MATLAB(一)MATLAB基础知识

热门文章

  1. 【SCOI2005】【BZOJ1087】互不侵犯King(状压dp)
  2. java面向对象之父类的引用指向子类的对象
  3. 使用抽象类还是接口(Java)
  4. springside 4 web-init 启动
  5. 高效的序列化/反序列化数据方式 Protobuf
  6. 面试官问我:平常如何对你的 Java 程序进行调优?
  7. 2018杭州云栖大会,梁胜博士的演讲PPT来啦!
  8. PL SQL导入导出sql/dmp文件
  9. 亚马逊低调收购Biba 或下月发布视频消息服务
  10. 如何学习前端 转载