动态规划最长子串问题
来源:互联网 发布:java 获取键盘输入 编辑:程序博客网 时间:2024/06/06 00:53
今天研究了动态规划算法的基本思想和解题思路,自己测试写下这段代码,以验证vc/dev下编译通过,哈哈。。
#include <stdio.h>
#include <stdlib.h>
#define N 8
#define M 7
char x[N+1]={' ','a','b','c','d','g','f','a','c'};
char y[M+1]={' ','b','d','g','h','a','c','d'};
int z[N+1][M+1];
int h[N+1][M+1];
void Length()
{
int i,j;
for(i=0;i<N;i++)
z[i][0]=0;
for(j=0;j<M;j++)
z[0][j]=0;
for(i=1;i<=N;i++)
for(j=1;j<=M;j++)
{
if(x[i]==y[j])
{
z[i][j]=z[i-1][j-1]+1;
h[i][j]=0;
}
else if(z[i-1][j]>=z[i][j-1])
{
z[i][j]=z[i-1][j];
h[i][j]=1;
}
else
{
z[i][j]=z[i][j-1];
h[i][j]=2;
}
}
}
void LCS(int i,int j)
{
if(i==0||j==0)
return;
if(h[i][j]==0)
{
LCS(i-1,j-1);
printf("%c ",x[i]);
}
else if(h[i][j]==1)
{
LCS(i-1,j);
}
else
{
LCS(i,j-1);
}
}
int main()
{
Length();
printf("%d\n",z[N][M]);
LCS(N,M);
system("pause");
return 0;
}
- 【动态规划】最长公共子串问题
- 动态规划最长子串问题
- 【动态规划】最长公共子串问题
- 最长公共子串问题 动态规划
- 动态规划求解最长公共子串问题
- Java动态规划求解最长公共子串问题
- Java动态规划求解最长公共子串问题
- 算法回顾 - 动态规划 之 最长公共子串问题
- 动态规划-最长公共子串问题的实现
- 动态规划-最长公共子串问题-java版
- 动态规划求解最长公共子串的问题
- 动态规划之最长公共子串问题
- [动态规划]最长公共子串长度问题
- 动态规划解最长升序子串问题
- 动态规划系列问题-最长公共子串
- 动态规划问题解字符串最长子串问题
- 算法/动态规划/LongestCommonSubstring最长公共子串问题
- 递归与动态规划---最长公共子串问题
- 弹出新页面被拦截处理方法总结
- getParameter与getAttribute系统理解
- 162. Find Peak Value Leetcode Python
- java_基础_类详解
- 《第一行代码-Android》学习笔记(十二)
- 动态规划最长子串问题
- leetcode:Sort Colors 菜鸟解法
- jstl <fmt:formatNumber>标签学习笔记
- git add时create mode 100644到底是什么含义?
- 《第一行代码-Android》学习笔记(十三)
- Java中的两种GC方式
- Git常用命令总结
- 新年来临之际,一点小小的决心和感悟
- android.content.res.Resources$NotFoundException: String resource ID异常总结