SDUT_2080最长公共子序列问题
生活随笔
收集整理的這篇文章主要介紹了
SDUT_2080最长公共子序列问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊打開講解
最長公共子序列問題
Time Limit:?1000MS?Memory Limit:?65536KB Submit?Statistic?DiscussProblem Description
給定兩個序列X=Input
輸入數據有多組,每組有兩行 ,每行為一個長度不超過500的字符串(輸入全是大寫英文字母(A,Z)),表示序列X和Y。Output
每組輸出一行,表示所求得的最長公共子序列的長度,若不存在公共子序列,則輸出0。Example Input
ABCBDAB BDCABAExample Output
4
#include <iostream> #include <cstring> #include <algorithm> using namespace std; char s1[1000],s2[1000]; int maxlen[1000][1000]; int main() {while(cin>>s1>>s2){int length1=strlen(s1);int length2=strlen(s2);memset(maxlen,0,sizeof(maxlen));for(int i=1;i<=length1;++i){for(int j=1;j<=length2;++j)if(s1[i-1]==s2[j-1])//注意maxlen[i][j]=maxlen[i-1][j-1]+1;elsemaxlen[i][j]=max(maxlen[i][j-1],maxlen[i-1][j]);}cout<<maxlen[length1][length2]<<endl;}return 0; }
總結
以上是生活随笔為你收集整理的SDUT_2080最长公共子序列问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SDUT_1299 最长上升子序列
- 下一篇: poj_1887