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练习程序批量修改文件名
Jan 16 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
Python实现简单的四则运算计算器
Nov 02 Python
Python面向对象编程基础解析(一)
Oct 26 Python
Django重置migrations文件的方法步骤
May 01 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
kafka-python 获取topic lag值方式
Dec 23 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
用 Python 制作地球仪的方法
Apr 24 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
通过代码简单了解django model序列化作用
Nov 12 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 连接mssql数据库 初学php笔记
2010/03/01 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
PHP中的session安全吗?
2016/01/22 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
vue mounted组件的使用
2018/06/18 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
python属于解释型语言么
2020/06/15 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
Python如何读写二进制数组数据
2020/08/01 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
导购员的岗位职责
2014/02/08 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
白酒代理协议书范本
2014/10/26 职场文书
结婚典礼主持词
2015/06/29 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android