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 相关文章推荐
使用Pyrex来扩展和加速Python程序的教程
Apr 13 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
儿童学习python的一些小技巧
May 27 Python
Django处理文件上传File Uploads的实例
May 28 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
python调用有道智云API实现文件批量翻译
Oct 10 Python
python 利用opencv实现图像网络传输
Nov 12 Python
解决virtualenv -p python3 venv报错的问题
Feb 05 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通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
深入解析Python中的上下文管理器
2016/06/28 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
简述数据库的设计过程
2015/06/22 面试题
工程管理造价应届生求职信
2013/11/13 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
校园文化标语
2014/06/18 职场文书
关于美容院的活动方案
2014/08/14 职场文书
员工年终自我评价
2014/09/14 职场文书
法定代表人证明书
2014/11/28 职场文书
2014年技术部工作总结
2014/12/12 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript