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实现进程间通信简单实例
Jul 23 Python
Python常用知识点汇总
May 08 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
Python中动态创建类实例的方法
Mar 24 Python
Python信息抽取之乱码解决办法
Jun 29 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
windows下pycharm安装、创建文件、配置默认模板
Jul 31 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
python Kmeans算法原理深入解析
Aug 23 Python
python根据字典的键来删除元素的方法
Aug 16 Python
Python 多进程原理及实现
Dec 21 Python
MATLAB 全景图切割及盒图显示的实现步骤
May 14 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
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
python插入排序算法实例分析
2015/07/03 Python
python中 logging的使用详解
2017/10/25 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
学习十八届三中全会精神实施方案
2014/02/17 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
世界十大狙击步枪排行榜
2022/03/20 杂记
Python正则表达式中flags参数的实例详解
2022/04/01 Python