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 Tkinter GUI编程入门介绍
Mar 10 Python
提升Python程序运行效率的6个方法
Mar 31 Python
举例讲解Python中metaclass元类的创建与使用
Jun 30 Python
Python读取word文本操作详解
Jan 22 Python
使用python 3实现发送邮件功能
Jun 15 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
Django渲染Markdown文章目录的方法示例
Jan 02 Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 Python
python三大神器之fabric使用教程
Jun 10 Python
利用Python复制文件的9种方法总结
Sep 02 Python
QML用PathView实现轮播图
Jun 03 Python
python爬虫如何解决图片验证码
Feb 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
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
jquery trim() 功能源代码
2011/02/14 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
Angular实现响应式表单
2017/08/04 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
python requests 测试代理ip是否生效
2018/07/25 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
python 实现简易的记事本
2020/11/30 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
群众路线剖析材料
2014/02/02 职场文书
法制宣传月活动总结
2014/04/29 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书