采用分治算法迭代计算最长公共前缀问题(python)
题目
采用分治算法迭代计算最长公共前缀问题(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: 输入: ["fl ...
- 算法题---最长公共前缀
题目来源:https://leetcode-cn.com/problems/longest-common-prefix/ 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符 ...
- leetcode算法题--最长公共前缀
原文链接:https://leetcode-cn.com/problems/longest-common-prefix/ 纵向扫描 string longestCommonPrefix(vector& ...
- 算法------------ 最长公共前缀
题目描述: 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "".示例 1:输入: ["flower","flow&q ...
- [Leedcode][JAVA][第14题][最长公共前缀][二分][横竖扫描][分治]
[问题描述][中等] 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "".示例 1:输入: ["flower","f ...
- LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)
题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...
- python【力扣LeetCode算法题库】14-最长公共前缀(列表解压)
最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","fl ...
- 【最长公共前缀】算法优化笔记
题目:编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 示例 1:输入: ["flower","flow&quo ...
- 【数据结构与算法】之深入解析“最长公共前缀”的求解思路与算法示例
一.题目要求 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入:strs = ["flower",&q ...
最新文章
- 青少年编程竞赛交流群第050次活动录播
- Neighbor-Vote:使用邻近距离投票优化单目3D目标检测(ACM MM2021)
- 面向对象编程(第五篇)
- ab和jmeter进行GET/POST压力测试的使用心得和比较(转载,在ubuntu16.04下使用ab带json对centos7压力测试验证可用)
- 机器学习之最大似然估计(MLE)和最大后验概率估计(MAP)
- python 如何定义空字典_python字典中如何添加键值对
- python实现绘制信号序列语谱图
- c hello world
- Sqlite3修复数据库
- 图机器学习在度小满风控中的应用
- 数字电子钟设计(基于quartus软件)
- MATLAB----输入和输出
- C语言 utf8 gbk 互转
- 微信小程序 tab点击切换(不滑动)
- 已经买好了域名后怎么建立一个网站
- eclipse右下角出现 linking viewer selection with current editor 而且停不掉 导致eclipse很卡
- dbt-tidb 1.2.0 尝鲜
- html 滑屏 效果,HTML5 web app实现手动页面滑屏效果
- android模拟按键方法,Android随笔之——模拟按键操作的几种方式
- 探索TiDB Lightning源码来解决发现的bug