当前位置: 首页 > 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 锂基脂_内蒙古锂基脂润滑油供应商
  • [译] React v16.8: 含有Hooks的版本
  • angular2开源库收集
  • es6
  • ES6核心特性
  • React-redux的原理以及使用
  • Solarized Scheme
  • SpiderData 2019年2月16日 DApp数据排行榜
  • 创建一种深思熟虑的文化
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 老板让我十分钟上手nx-admin
  • 学习笔记:对象,原型和继承(1)
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 用jquery写贪吃蛇
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 阿里云ACE认证之理解CDN技术
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​批处理文件中的errorlevel用法
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #每日一题合集#牛客JZ23-JZ33
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (2.2w字)前端单元测试之Jest详解篇
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (接口自动化)Python3操作MySQL数据库
  • (三)终结任务
  • (一)为什么要选择C++
  • (转)关于多人操作数据的处理策略
  • *p++,*(p++),*++p,(*p)++区别?
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 5种线程安全集合
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 解决重复提交问题
  • .net程序集学习心得
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • @Bean有哪些属性
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略