#! /usr/bin/env python3
# -*- coding: utf-8 -*-# 对于最长公共子串问题,答案为网格中最大的数字——它可能并不位于最后的单元格中def findlongestsubstring(source, dest): # 输入值(内循环), 要比较的目标(外循环)inLen = len(source)outLen = len(dest)cell = [ [0 for j in range(inLen+1)] for i in range(outLen+1)]for i in range(1, outLen+1):for j in range(1, inLen+1):cell[i][j] = 0if dest[i-1] == source[j-1]: # 字母相同cell[i][j] = cell[i-1][j-1] + 1for i in range(1, outLen+1):print(cell[i][1:])longest = -1flag = -1for i in range(1, outLen+1):for j in range(1, inLen+1):if longest < cell[i][j]:longest = cell[i][j]flag = j#print("max = %d, end = %d" % (longest, flag))print("The Longest sub string of \"%s\" and \"%s\" is \"%s\"" % (source, dest, dest[flag-longest:flag]))return cellif __name__ == "__main__":#findlongestsubstring("hisha", "fish")#print()findlongestsubstring("hish", "vista")#print()findlongestsubstring("hish", "hash")

核心思想:

if word_a[i] == word_b[j]: ←---------两个字母相同
cell[i][j] = cell[i-1][j-1] + 1
else: ←------------------------------两个字母不同
cell[i][j] = 0

python -- 最长公共子串相关推荐

  1. Python最长公共子串

    Python最长公共子串 方法一 最简单最容易想到的方法,去数组第一个元素为最长公共前缀,如果是,就return,如果不是就减去最后一个单词.只到找到位置. class Solution:def lo ...

  2. java实现最长连续子序列_最长公共子序列/最长公共子串 Python/Java实现

    关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...

  3. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  4. 用Python计算最长公共子序列和最长公共子串

    如何用Python计算最长公共子序列和最长公共子串 1. 什么是最长公共子序列?什么是最长公共子串? 1.1. 最长公共子序列(Longest-Common-Subsequences,LCS) 最长公 ...

  5. python实现编辑距离,最长公共子序列,最长公共子串

    python实现编辑距离 python实现最大公共子序列 python实现最长公共子串

  6. 【236】Python求列表最长字符串及lambda和最长公共子串

    ♣ 题目部分(原文见公众号:python宝) python宝: https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5Nj ...

  7. LCS/最长公共子序列/最长公共子串 实现 Python/Java

    参考 http://blog.csdn.net/u012102306/article/details/53184446 http://blog.csdn.net/hrn1216/article/det ...

  8. [Python]获取2个字符串的最长公共子串

    原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:https://blog.csdn.net/humanking7/article/details/84645055 文章目录 @[toc] ...

  9. Python —— 查询两个字符串的最长公共子串

    查询两个字符串的最长公共子串 查询两个字符串的最长公共子串 查询两个字符串的最长公共子串 思路: 1.通过字符串1从全长开始判断是否存在于字符串2中,如果不存在则迭代至只有1位字符 2.通过列表来保存 ...

最新文章

  1. ffmpeg rtsp转 rtmp
  2. mbstowcs 和 wcstombs函数:C语言提供的宽字符和多字节字符转换函数
  3. 前端一HTML:十五: 层叠,权重,优先级的关系
  4. 使用Asible连接被控端SHH拒绝解决办法
  5. 浅析人工智能的数学基础(文末送书!)
  6. 两分钟彻底让你明白Android Activity生命周期(图文)!
  7. JS Date格式化为yyyy-MM-dd类字符串
  8. Vue - 条件渲染与列表渲染
  9. 导航栏透明度渐变; 下拉头视图拉伸效果;勾号动画; 一段文字中点击部分可响应不同事件...
  10. vue 百度地图纠偏 经纬度偏差、根据经纬度返回地址等信息
  11. 计算机机房系统安装,学校机房轻松安装WIN7系统.doc
  12. python画双坐标图_Python画双坐标曲线图
  13. Python词频分析
  14. 关于英语写作和阅读的学习——施一公教授的两篇博文
  15. 【操作系统-Windows】杀毒软件工作原理 及 现在主要杀毒技术
  16. ActiveMQ 默认用户名和密码
  17. matlab ode45修改,matlab ode45增加输入值
  18. MAC通过ZOC远程访问Linux
  19. 10-Ubuntu-ftp客户端
  20. 解决VO类属性与要返回的json串字段名称不一样的问题

热门文章

  1. mysql时间戳转换日期
  2. [3]_人人都是产品经理
  3. 找数据不求人,轻松获取你想要的数据!
  4. java 正则表达式贪婪与懒惰
  5. ubuntu护眼第二大神器 Redshift
  6. 网络安全系列-二十六: IP地理定位数据库及使用示例
  7. c语言的输出格式之正负号
  8. git 公钥提交代码_Git提交代码push的时候报错常见错误
  9. 做电商网站服务器在哪里,电商网站服务器如何选择
  10. 从概念到底层技术,区块链一站式分析和汇总(附知识图谱)