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 多线程实例详解
Mar 25 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
详解分布式任务队列Celery使用说明
Nov 29 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
Django forms表单 select下拉框的传值实例
Jul 19 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
信号生成及DFT的python实现方式
Feb 25 Python
Python直接赋值及深浅拷贝原理详解
Sep 05 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 Python
Python Numpy库的超详细教程
Apr 06 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
Sep 23 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
漂亮但不安全的CTB
2006/10/09 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
Ajax搜索结果页面下方的分页按钮的生成
2012/04/05 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
javascript实现留言板功能
2020/02/08 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
python类装饰器用法实例
2015/06/04 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
在centos7中分布式部署pyspider
2017/05/03 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
Python制作exe文件简单流程
2019/01/24 Python
django 简单实现登录验证给你
2019/11/06 Python
python 经典数字滤波实例
2019/12/16 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
土木工程毕业生自荐信
2013/09/21 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
房产委托公证书样本
2014/04/04 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
工作一年自我鉴定
2019/06/20 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang