当前位置: 首页 > news >正文

(LeetCode) T14. Longest Common Prefix

Problem : 

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".


Solve :


Thought :

这道题属于easy的题,想要解题自然是不难,这道题有很多种算法,归根结底还是要逐个比较两个字符串的最长前缀。

一开始我写了个两个字符串匹配最长前缀的函数,在循环调用n-1次,发现耗时太多了。

查了一下才发现python中有一个find函数(类似的在java有indexof),实现的是在另一个字符串中从头开始查找给定字符串,返回最先匹配的首字符下标,否则返回-1

于是有了另一种匹配算法(上图所示):以第一个字符串作为初始值,对其他每个字符串执行以下操作,strs[i].find(当前最长前缀),如果返回值不为0,即当前最长前缀不是该字符串的前缀,则取出当前最长前缀的最后一个字符,继续执行find操作,直到当前最长前缀也是该字符串的前缀为之。最后返回当前最长前缀即可。

这个算法比之前的自己写函数逐个匹配快了一些。


相关文章:

  • python-numpy 简介与练习
  • GUI编程练习(Python)-调用百度翻译API自制翻译器(上)
  • GUI编程练习(Python)-调用百度翻译API自制翻译器(下)
  • Python-pyinstaller打包与ico生成
  • Python中的图片打包与pyinstaller中的spec文件简介
  • GUI编程练习(Python)-自制简易的文件检索器
  • 关于windows中host文件的修改
  • Python-自制简易程序挂机刷御魂
  • Python-使用geany编辑器实现32位与64位共存使用
  • python-五子棋-AI
  • Python-从视频到gif(imageio,moviepy,ffmpeg)
  • python-二分法插入排序(Binary Insert Sort)
  • 本地仓库关联Github仓库
  • macos可以升级到指定版本吗_iPhone 越狱后还可以保资料升级系统吗?
  • 2 shell 锂基脂_内蒙古锂基脂润滑油供应商
  • 【EOS】Cleos基础
  • Angular2开发踩坑系列-生产环境编译
  • C++入门教程(10):for 语句
  • Docker容器管理
  • EventListener原理
  • KMP算法及优化
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • SQLServer之索引简介
  • 闭包,sync使用细节
  • 基于HAProxy的高性能缓存服务器nuster
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 学习ES6 变量的解构赋值
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (转)LINQ之路
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .bat批处理出现中文乱码的情况
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET4.0并行计算技术基础(1)
  • .net下简单快捷的数值高低位切换
  • .Net中间语言BeforeFieldInit
  • :O)修改linux硬件时间
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [bzoj2957]楼房重建
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [IE6 only]关于Flash/Flex,返回数据产生流错误Error #2032的解决方式
  • [LeetCode] NO. 387 First Unique Character in a String
  • [Power Query] 分组依据
  • [SoftGrid 系列] Microsoft SoftGrid Server 安装篇
  • [Tapestry]Struts终结者?对比组件框架技术tapestry(转)
  • [简化开发] mybatis plus自动填充 INSERT 与 INSERT_UPDATE 坑(记录)
  • [日常] Go语言圣经--作用域,基础数据类型,整型
  • [日志]中国人对丈夫的称呼大全
  • [如何编译openGauss对应版本的wal2json.so]
  • [数据结构]-玩转八大排序(二)冒泡排序快速排序
  • [原创]Fluent NHibernate之旅
  • [置顶] How to compile openjdk 7 in RHEL5
  • [转]关于jquery中html()、text()、val()的区别