最长公共子序列的问题
来源:互联网 发布:apm调参软件 编辑:程序博客网 时间:2024/06/05 10:04
动态规划
既然是经典的题目肯定是有优化空间的,并且解题方式是有固定流程的,这里我们采用的是矩阵实现,也就是二维数组。
第一步:先计算最长公共子序列的长度。
第二步:根据长度,然后通过回溯求出最长公共子序列。
现有两个序列X={x1,x2,x3,...xi},Y={y1,y2,y3,....,yi},
设一个C[i,j]: 保存Xi与Yj的LCS的长度。
递推方程为:
#include "stdafx.h"#include<string>using namespace std;int Finsubstring(string A,string B){int An = A.size();int Bn = B.size();int **S=new int*[An];for (int i = 0; i <= An; i++)S[i] = new int[Bn+1];for (int i = 0; i <= An;i++)for (int j = 0; j <= Bn; j++){if (i == 0 || j == 0)S[i][j] = 0;if (A[i] == B[j]&&i>0&&j>0)S[i][j] = S[i-1][j-1] + 1;if (A[i] != B[j] && i>0 && j>0)S[i][j] = S[i][j - 1]>S[i - 1][j] ? S[i][j - 1] : S[i - 1][j];}return S[An][Bn];}int main(){string A="cnblogs";string B="belong";int result = Finsubstring(A, B);printf("%d",result);return 0;}
阅读全文
0 0
- 最长公共子序列,最长公共子串,最长递增子序列的问题~
- 关于最长公共子序列的问题
- 字符串的最长公共子序列问题
- 最长公共子序列的问题
- 字符串的最长公共子序列问题
- 最长公共子序列的问题
- 最长公共子序列的问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- cs224d 作业 problem set2 (二) TensorFlow 实现命名实体识别
- “Canvas: trying to draw too large bitmap” when Android N Display Size set larger than Small
- cs224d 作业 problem set2 (三) 用RNNLM模型实现Language Model,来预测下一个单词的出现
- 安装Tez 0.9.0
- JMeter java.net.URISyntaxException: Illegal character in query at index 60
- 最长公共子序列的问题
- Lavarel初识
- python3爬虫初探(八)requests
- pygame.key
- cs224d 作业 problem set3 (一) 实现Recursive Nerual Net Work 递归神经网络
- 《Spring 5 官方文档》5. 验证、数据绑定和类型转换
- MATLAB使用积累本
- Python UDP客户端和服务端通信
- spring kafka consumer 提升并行度