Common Subsequence
来源:互联网 发布:mac os 10.7 升级 编辑:程序博客网 时间:2024/06/08 03:17
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X if there exists a strictly increasing sequence <i1, i2, ..., ik> of indices of X such that for all j = 1,2,...,k, xij = zj. For example, Z = <a, b, f, c> is a subsequence of X = <a, b, c, f, b, c> with index sequence <1, 2, 4, 6>. Given two sequences X and Y the problem is to find the length of the maximum-length common subsequence of X and Y.
The program input is from a text file. Each data set in the file contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct. For each set of data the program prints on the standard output the length of the maximum-length common subsequence from the beginning of a separate line.
The program input is from a text file. Each data set in the file contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct. For each set of data the program prints on the standard output the length of the maximum-length common subsequence from the beginning of a separate line.
abcfbc abfcabprogramming contest abcd mnp
420
abcfbc abfcabprogramming contest abcd mnp
420
题意:找到两字符串的最大子串数
题解:以 abcfbc abfcab 为例,可以找到4为最长子序列,给出空间辅助示意图便于寻找规律:
由图可见:
当a[i]==b[j]时,F[i][j]=F[i-1][j-1]+1;//左上公共子序列+1
当a[i]!=b[j]时,max(F[i-1][j],F[i][j-1]);//玩做或往右寻找最大值
#include<iostream>#include<algorithm>#include<string.h>using namespace std;char s1[1005];char s2[1005];int dp[1005][1005];int main(){while(cin>>s1>>s2){int n=strlen(s1);int m=strlen(s2);memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){//从辅助空间变化示意图求得规律 if(s1[i-1]==s2[j-1])dp[i][j]=dp[i-1][j-1]+1;elsedp[i][j]=max(dp[i-1][j],dp[i][j-1]);}cout<<dp[n][m]<<endl;}return 0;}
阅读全文
0 0
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Common Subsequence
- Mybatis批量插入返回插入成功后的主键id
- jmeter 断言详解
- Redis 学习记录(1)
- Java Calendar使用指南
- DOM方法
- Common Subsequence
- 通讯录设计(链表实现)
- spring集成slf4j日志输出
- js封装方法
- 自定义折线图/柱状图
- 赋值运算符的重载函数
- python切分目录
- 设计模式之单例设计模式(饿汉单例设计模式&懒汉单例设计模式)
- iOS开发:给项目工程里面添加Podfile配置文件,以及CocoaPods的简单使用