用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

最长公共子序列

2014-05-22 作者: qiu0130举报

[c++]代码库

#include <iostream>
#include <string.h>
using namespace std;
int a[100][100];
char s1[100];
char s2[100];
int main()
{   
	int len1, len2, i, j;
    cin >> s1+1 >> s2+1;
	len1=strlen(s1+1);
	len2=strlen(s2+1);
	// 两个字符串中有一个为空字符串,则最长公共子序列为0
	for(i = 0; i <= len1; i++)
        a[i][0]=0;          
	for(j = 0; j <= len2; j++)
		a[0][j]=0;
	for(i = 1; i <= len1; i++)
	 for(j = 1; j <= len2; j++)
		{
            if(s1[i]==s2[j])
			{
				a[i][j]=a[i-1][j-1]+1;
			}else
			{                //  两个字符串向后移一个字符,比较两种情况,求最大
				int length1=a[i][j-1];
				int length2=a[i-1][j];
				if(length1 > length2)
					a[i][j]=length1;
				else
					a[i][j]=length2;
			}
		}
     cout << a[len1][len2] << endl;
   return 0;

}
//2014-5-22


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...