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 相关文章推荐
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
Fabric 应用案例
Aug 28 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python2随机数列生成器简单实例
Sep 04 Python
python re模块findall()函数实例解析
Jan 19 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
Python切图九宫格的实现方法
Oct 10 Python
Python:slice与indices的用法
Nov 25 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
Python Pandas解析读写 CSV 文件
Apr 11 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面试题附答案
2009/01/07 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
调试php程序的简单步骤
2019/10/04 PHP
javascript 内存回收机制理解
2011/01/17 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python 获取图片分辨率的方法
2019/01/08 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
GC是什么?为什么要有GC?
2013/12/08 面试题
教师学习培训邀请函
2014/02/04 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
投诉书范文
2015/07/02 职场文书
MySQL时区造成时差问题
2022/04/13 MySQL