当前位置: 首页 > 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 锂基脂_内蒙古锂基脂润滑油供应商
  • @angular/forms 源码解析之双向绑定
  • 【个人向】《HTTP图解》阅后小结
  • GraphQL学习过程应该是这样的
  • Java IO学习笔记一
  • Js基础知识(四) - js运行原理与机制
  • Linux gpio口使用方法
  • Mysql数据库的条件查询语句
  • Netty 4.1 源代码学习:线程模型
  • 后端_ThinkPHP5
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 原生JS动态加载JS、CSS文件及代码脚本
  • ​​​​​​​​​​​​​​Γ函数
  • # 透过事物看本质的能力怎么培养?
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #NOIP 2014# day.1 T2 联合权值
  • ${ }的特别功能
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (南京观海微电子)——I3C协议介绍
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)u-boot-nand.bin的下载
  • (转)setTimeout 和 setInterval 的区别
  • *上位机的定义
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET 事件模型教程(二)
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • [ C++ ] STL---string类的使用指南
  • [ 转载 ] SharePoint 资料
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [bzoj1912]异象石(set)
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [HAOI2016]食物链
  • [hdu2196]Computer树的直径
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]
  • [linux] Key is stored in legacy trusted.gpg keyring
  • [Linux]进程间通信(进程间通信介绍 | 匿名管道 | 命名管道)
  • [linux学习]apt-get参数解析