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进程管理工具supervisor使用实例
Sep 17 Python
python排序方法实例分析
Apr 30 Python
Python读取键盘输入的2种方法
Jun 16 Python
Python对List中的元素排序的方法
Apr 01 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 Python
在Python中获取两数相除的商和余数方法
Nov 10 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
使用pandas的box_plot去除异常值
Dec 10 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
pytorch加载自己的图像数据集实例
Jul 07 Python
Python进程池与进程锁之语法学习
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+java实现自动新闻滚动窗口
2006/10/09 PHP
五个PHP程序员工具
2008/05/26 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
浏览器兼容性问题大汇总
2015/12/17 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
python删除列表内容
2015/08/04 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
JSP&Servlet技术面试题
2015/05/21 面试题
公司清洁工岗位职责
2013/12/14 职场文书
学生自我鉴定
2013/12/18 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
党员实事承诺书
2014/03/26 职场文书
微电影大赛策划方案
2014/06/05 职场文书
2014年个人总结范文
2015/03/09 职场文书
投诉书格式范本
2015/07/02 职场文书
毕业感言怎么写
2015/07/31 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers
python小型的音频操作库mp3Play
2022/04/24 Python
讲解MySQL增删改操作
2022/05/06 MySQL
Java获取字符串编码格式实现思路
2022/09/23 Java/Android