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程序中操作文件之flush()方法的使用教程
May 24 Python
Python的时间模块datetime详解
Apr 17 Python
Python排序搜索基本算法之堆排序实例详解
Dec 08 Python
Python数据结构之哈夫曼树定义与使用方法示例
Apr 22 Python
python实现对求解最长回文子串的动态规划算法
Jun 02 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
Python3中的bytes和str类型详解
May 02 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
python yield和Generator函数用法详解
Feb 10 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 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
模拟flock实现文件锁定
2007/02/14 PHP
PHP中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
详解Numpy中的广播原则/机制
2018/09/20 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
Django Rest framework权限的详细用法
2019/07/25 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
研究生自我鉴定范文
2013/10/30 职场文书
测试工程师岗位职责
2013/11/28 职场文书
学习之星事迹材料
2014/05/17 职场文书
实习护士自荐信
2014/06/21 职场文书
环卫工作个人总结
2015/03/04 职场文书
预备党员介绍人意见
2015/06/01 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书