定义:

两个字符串共有的最长的子序列(可不连续),最长公共字符串(Longest CommonSubstring)是两个字符串共有的最长的连续字符串。

方法:穷举法,动态规划

动态规划法的简介:

《后补》

代码思路:

《后补》

Python 代码:

# -*- coding: utf-8 -*-

#!/usr/bin/env python

from random import randint

#generate a unsorted list

origin = []

LETTERS="abcdefghijklmnopqrstuvwxyz"

def randomList():

strs = ""

end = randint(5,10)

for i in xrange(0,end,1):

strs += LETTERS[randint(0,25)]

return strs

def lcs(getRandomStr):

stra = getRandomStr()

strb = getRandomStr()

la = len(stra)

lb = len(strb)

c = [[0]*(lb+1) for i in range(la+1)]

print stra

print strb

for i in range(la-1,-1,-1):

for j in range(lb-1,-1,-1):

if stra[i] == strb[j]:

c[i][j] = c[i+1][j+1] + 1

else:

c[i][j] = max({c[i+1][j],c[i][j+1]})

#print the result

i,j = 0,0

ret = ''

while i < la and j < lb:

# print i,j

if stra[i] == strb[j]:

ret += stra[i]

i += 1

j += 1

elif c[i+1][j] >= c[i][j+1] :

i += 1

else:

j += 1

print ret

if __name__ == '__main__':

lcs(randomList)

穷举法求最大公共子序列C语言,算法--最长公共子序列(LongestCommon Subsequence, LCS)...相关推荐

  1. java 穷举法求水仙花数_常用算法-穷举法

    穷举法又称为枚举法,它是在计算机算法设计中用得最多的一种编程思想.它的实现方式是:在已知答案范围的情况下,依次地枚举该范围内所有的取值,并对每个取值进行考查,确定是否满足条件.经过循环遍历之后,筛选出 ...

  2. 最长公共子序列动态规划c语言,动态规划----最长公共子序列(C++实现)

    最长公共子序列 题目描述:给定两个字符串s1 s2 - sn和t1 t2 - tm .求出这两个字符串的最长公共子序列的长度.字符串s1 s2 - sn的子序列指可以表示为 - { i1 < i ...

  3. 最长公共子序列求序列模板提_最长公共子序列

    最长公共子序列求序列模板提 Description: 描述: This question has been featured in interview rounds of Amazon, MakeMy ...

  4. 穷举法求经典数学问题(鸡和兔)

    /*公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱 用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱.*/ #include<stdio.h ...

  5. python穷举法求素数_使用Python求指数为20以内的所有梅森素数

    这篇文章将要介绍梅森素数的定义以及在Python中实现的方法. 一.梅森素数 梅森数(Mn)指的是形如2n - 1的正整数,其中指数 n 是素数. 如果一个梅森数是素数,则称其为梅森素数.例如22-1 ...

  6. Python 使用穷举法求两个数的最大公约数。

    for m in range (0,2):a = int(input("请输入一个数:"))b = int(input("请输入另外一个数:"))#判断num1 ...

  7. 公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,使用穷举法求公鸡、母鸡、小鸡各多少只。

    #include <stdio.h> int main(int argc, char *argv[]) { int g,m,x,a; for(g=0;g<=20;g++) //设全买 ...

  8. 《C语言及程序设计》实践项目——穷举法解题

    返回:贺老师课程教学链接 说明:穷举法在有些时候,并不是一种最有效率的解决方案,但却是最直观的.初学者依靠这一组问题的解决,将获得程序设计的最直接体验,以及会想问题的头脑. [项目1-小明借书] 小明 ...

  9. 求100以内素数的方法(筛选法,穷举法,穷举法优化)

    一.基本思想 //质数(素数)是指在大于1的自然数中除了1和它本身以外不再有其他因数的自然数. (1)判断一个数n是不是素数,可以用2到(int)sqrt(n)之间的所有整数去除n,看能否整除,如果都 ...

最新文章

  1. 25个好用到爆的一行 Python 代码,建议收藏
  2. 前端使用 Nginx 反向代理彻底解决跨域问题
  3. 注意设置httpclient连接数
  4. Mybatis 3学习笔记(一)
  5. 【Linux】一步一步学Linux——ncat命令(159)
  6. python中带附件发送电子邮件_python发送带附件邮件
  7. calayer 与uiview
  8. BZOJ4881 线段游戏(二分图+树状数组/动态规划+线段树)
  9. 函数指针与回调函数详解
  10. macos mysql8_macOS + MySql8 问题
  11. linux任务计划不执行时间,Linux任务计划、周期性任务执行
  12. 编译原理(龙书):第三章部分题目参考答案
  13. MDM平台数据分发功能说明
  14. 计算机二级word海报体,2016年计算机二级《MSOffice》全真模拟试题
  15. 数据分析:逻辑树分析模型
  16. 把Nodejs做成CentOS系统服务并开机启动
  17. DCloud之Android原生工程配置
  18. 10个最好用的在线配色网站推荐
  19. “封转开”行情或再现 低仓位封基现套利机会
  20. mac 两种视频转音频方法

热门文章

  1. ue4渲染速度太慢_技术汇丨如何在UE4中实现最佳性能和高质量视觉效果
  2. linux+即时通讯服务器,linux平台上的即时通讯应用开发
  3. chm 转 html 带索引,chm 的项目文件中包含创建 chm 文件所需的HTML文件信息、目录表文件信息、索引文件信息、窗口属 - 试题答案网问答...
  4. Linux编译LLVM,如何使用ninja快速编译LLVM和Clang(以llvm3.3为例子)
  5. Qt之HTTP之模仿迅雷——根据URL获取文件信息(上)
  6. gluster分布式存储 入门篇
  7. 49.把字符串转换成整数
  8. 大快搜索获评“2018中国大数据基础软件领域领军企业”
  9. Flink1.6系列之—数据流编程模型
  10. IOS不支持2017-09-09的日期格式