程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 杭電 hdu 1159

杭電 hdu 1159

編輯:關於C語言

Common Subsequence:

#include<iostream>
#include<cstring>
using namespace std;
#define M 1000
#define N 1000
int c[M][N];
int lcs_len(char *a,char *b)
{
    int m=strlen(a),n=strlen(b),i,j;
    for(i=0;i<=m;++i)
        for(j=0;j<=n;++j)
            c[i][j]=0;
    for(i=0;i<=m;i++)
        c[i][0]=0;
      for(j=0;j<=n;j++)
          c[0][j]=0;
      for(i=1;i<=m;i++){
        for(j=1;j<=n;j++){
              if(a[i-1]==b[j-1])
                c[i][j]=c[i-1][j-1]+1;
              else
                if(c[i-1][j]>c[i][j-1])
                    c[i][j]=c[i-1][j];
            else
                c[i][j]=c[i][j-1];
         }
    }
    int maxnum=-32768;
    for(i=0;i<=m;++i)
        for(j=0;j<=n;++j)
            if(c[i][j]>maxnum)
                maxnum=c[i][j];
    return maxnum;
}
int main(){
    char a[M],b[M];
    while(cin>>a>>b)
        cout<<lcs_len(a,b)<<endl;
    return 0;
}


本文出自 “菜鳥的進階之路” 博客,請務必保留此出處http://beyond316.blog.51cto.com/7367775/1272550

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved