您的位置:首页 > 产品设计 > UI/UE

HDOJ 1159:Common Subsequence

2010-11-19 09:36 447 查看
#include <iostream>
#include <cstring>
using namespace std;

const int MAX = 1000;

int c[MAX+1][MAX+1];
int lcs(char *x, char *y, int c[][MAX+1]){
int m = strlen(x);
int n = strlen(y);

for(int i = 0; i < m; ++i)
c[i][0] = 0;
for(int i = 0; i < n; ++i)
c[0][i] = 0;
for(int i = 0; i < m; ++i){
for(int j = 0; j < n; ++j){
if(x[i] == y[j])
c[i+1][j+1] = c[i][j] + 1;
else
if(c[i][j+1] >= c[i+1][j])
c[i+1][j+1] = c[i][j+1];
else
c[i+1][j+1] = c[i+1][j];
}
}
return c[m]
;
}

int main(){
char x[MAX],y[MAX];

while(cin >> x >> y)
cout << lcs(x, y, c) << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: