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连接SQLServer2000的方法详解
Apr 19 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
对Python 数组的切片操作详解
Jul 02 Python
利用python循环创建多个文件的方法
Oct 25 Python
Pycharm以root权限运行脚本的方法
Jan 19 Python
python实现AES加密解密
Mar 28 Python
python多进程读图提取特征存npy
May 21 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
Pandas+Matplotlib 箱式图异常值分析示例
Dec 09 Python
python实现数字炸弹游戏程序
Jul 17 Python
pycharm导入源码的具体步骤
Aug 04 Python
python之json文件转xml文件案例讲解
Aug 07 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
php轻松实现中英文混排字符串截取
2014/05/28 PHP
JS判断不能为空实例代码
2013/11/26 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
javascript操作符"!~"详解
2015/02/10 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Django验证码的生成与使用示例
2017/05/20 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
python opencv实现运动检测
2018/07/10 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python用户自定义异常的实现
2020/12/25 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
英语专业应届生求职信范文
2013/11/15 职场文书
应届毕业生求职信
2014/05/26 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
举起手来观后感
2015/06/09 职场文书
高考升学宴主持词
2019/06/21 职场文书
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers