-

- 加为好友
- 发送私信
- 在线聊天
lizhaohu
- 等级:

- 可用分等级:
- 总技术分:
- 总技术分排名:
|
| 发表于:2008-09-02 23:15:065楼 得分:0 |
与求最长公共子序列相同。 //#include <stdio.h> #include <iostream.h> #include <string.h> int lcs_length(char x[], char y[]); int main() { char x[10000],y[10000]; int len; cin>>x; cin>>y; //scanf("%s%s",x,y); len=lcs_length(x,y); //printf("%d\n",len); cout < <len < <endl; return 0; } int lcs_length(char x[], char y[] ) { int m,n,i,j,l[100][100]; m=strlen(x); n=strlen(y); for(i=0;i <m+1;i++) l[i][0]=0; for(j=0;j <n+1;j++) l[0][j]=0; for(i=1;i <=m;i++) for(j=1;j <=n;j++) if(x[i-1]==y[j-1]) //i,j从1开始,但字符串是从0开始 l[i][j]=l[i-1][j-1]+1; else if(l[i][j-1]>l[i-1][j]) l[i][j]=l[i][j-1]; else l[i][j]=l[i-1][j]; return l[m][n]; } | | |
修改
删除
举报
引用
回复
| |