python实现求两个字符串的最长公共子串方法


Posted in Python onJuly 20, 2018

如下所示:

# coding:utf-8
'''
求两个字符串的最长公共子串
思想:建立一个二维数组,保存连续位相同与否的状态
'''
 
def getNumofCommonSubstr(str1, str2):
 
 lstr1 = len(str1)
 lstr2 = len(str2)
 record = [[0 for i in range(lstr2+1)] for j in range(lstr1+1)] # 多一位
 maxNum = 0   # 最长匹配长度
 p = 0    # 匹配的起始位
 
 for i in range(lstr1):
  for j in range(lstr2):
   if str1[i] == str2[j]:
    # 相同则累加
    record[i+1][j+1] = record[i][j] + 1
    if record[i+1][j+1] > maxNum:
     # 获取最大匹配长度
     maxNum = record[i+1][j+1]
     # 记录最大匹配长度的终止位置
     p = i + 1
 return str1[p-maxNum:p], maxNum
 
 
if __name__ == '__main__':
 str1 = raw_input()
 str2 = raw_input()
 
 res = getNumofCommonSubstr(str1, str2)
 print res

输出结果:字符串str1中的第一个最长公共子串(若有重复)

python实现求两个字符串的最长公共子串方法

以上这篇python实现求两个字符串的最长公共子串方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
python扫描proxy并获取可用代理ip的实例
Aug 07 Python
强悍的Python读取大文件的解决方案
Feb 16 Python
python根据txt文本批量创建文件夹
Dec 08 Python
Python函数参数匹配模型通用规则keyword-only参数详解
Jun 10 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
基于Python实现射击小游戏的制作
Apr 06 Python
Selenium浏览器自动化如何上传文件
Apr 06 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 08 Python
Django基础知识与基本应用入门教程
Jul 20 #Python
opencv python 2D直方图的示例代码
Jul 20 #Python
Linux下python制作名片示例
Jul 20 #Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 #Python
使用python脚本实现查询火车票工具
Jul 19 #Python
Python 判断文件或目录是否存在的实例代码
Jul 19 #Python
Flask框架Jinjia模板常用语法总结
Jul 19 #Python
You might like
php构造函数实例讲解
2013/11/13 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
Python中的Classes和Metaclasses详解
2015/04/02 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
python基于opencv检测程序运行效率
2019/12/28 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
求职自荐信的格式
2014/04/07 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL