题目

采用分治算法迭代计算最长公共前缀问题(python)

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

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

示例 1:

输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

编码

编写python文件longestCommonPrefix.py

from typing import Listclass Solution(object):def longestCommonPrefix(self, strs: List[str]) -> str:def lcp(start, end):if start == end:return strs[start]mid = (start + end) // 2lcpLeft, lcpRight = lcp(start, mid), lcp(mid + 1, end)minLength = min(len(lcpLeft), len(lcpRight))for i in range(minLength):if lcpLeft[i] != lcpRight[i]:return lcpLeft[:i]return lcpLeft[:minLength]return "" if not strs else lcp(0, len(strs) - 1)input = ["flower","flow","flight"]
result = Solution().longestCommonPrefix(input)
print(result)

运行过程

运行关键步骤一:

第一次运行到第11行时开始第一轮分治。input0 和input1分入了一组,input2单独成二组,二组暂时观望等待一组计算出结果。

运行关键步骤二:

一组开始递归。flower 和flow逐个字符比较,找到它们的最长公共前缀,为flow。

运行关键步骤三:

分治一组计算结果(flow)出来后 和 分治二组一直在等待的flight进行计算最长公共前缀。

运行关键步骤四:

产生最后的最长公共前缀fl

运行结果:

C:\Users\zyy\AppData\Local\Temp\longestCommonPrefix.py\venv\Scripts\python.exe D:/pythontest/longestCommonPrefix.py
flProcess finished with exit code 0

分治算法简述:
https://leetcode-cn.com/tag/divide-and-conquer/

采用分治算法迭代计算最长公共前缀问题(python)相关推荐

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

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

  2. 算法题---最长公共前缀

    题目来源:https://leetcode-cn.com/problems/longest-common-prefix/ 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符 ...

  3. leetcode算法题--最长公共前缀

    原文链接:https://leetcode-cn.com/problems/longest-common-prefix/ 纵向扫描 string longestCommonPrefix(vector& ...

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

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

  5. [Leedcode][JAVA][第14题][最长公共前缀][二分][横竖扫描][分治]

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

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

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

  7. python【力扣LeetCode算法题库】14-最长公共前缀(列表解压)

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

  8. 【最长公共前缀】算法优化笔记

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

  9. 【数据结构与算法】之深入解析“最长公共前缀”的求解思路与算法示例

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

最新文章

  1. 青少年编程竞赛交流群第050次活动录播
  2. Neighbor-Vote:使用邻近距离投票优化单目3D目标检测(ACM MM2021)
  3. 面向对象编程(第五篇)
  4. ab和jmeter进行GET/POST压力测试的使用心得和比较(转载,在ubuntu16.04下使用ab带json对centos7压力测试验证可用)
  5. 机器学习之最大似然估计(MLE)和最大后验概率估计(MAP)
  6. python 如何定义空字典_python字典中如何添加键值对
  7. python实现绘制信号序列语谱图
  8. c hello world
  9. Sqlite3修复数据库
  10. 图机器学习在度小满风控中的应用
  11. 数字电子钟设计(基于quartus软件)
  12. MATLAB----输入和输出
  13. C语言 utf8 gbk 互转
  14. 微信小程序 tab点击切换(不滑动)
  15. 已经买好了域名后怎么建立一个网站
  16. eclipse右下角出现 linking viewer selection with current editor 而且停不掉 导致eclipse很卡
  17. dbt-tidb 1.2.0 尝鲜
  18. html 滑屏 效果,HTML5 web app实现手动页面滑屏效果
  19. android模拟按键方法,Android随笔之——模拟按键操作的几种方式
  20. 探索TiDB Lightning源码来解决发现的bug

热门文章

  1. 天池比赛 Docker 解决无法读取测试集,提交成功
  2. 格雷希尔GripSeal快速密封接头G70外卡式、滑套式快速连接器型号规格
  3. 麻省理工学院-面向生命科学的深度学习2021
  4. 量化选股模型—一致预期模型
  5. 蝉知门户系统迁移到SAE平台-File模块扩展
  6. SQL零基础入门学习(四)
  7. 经典查找算法 --- B+树
  8. app图标icon大全
  9. [BZOJ1975]HH去散步 图论+矩阵
  10. unity urp 棉麻织物渲染