概述
这个题网上大多数的思路是动态规划,其实简单的循环算法也可以解决,下面是我的代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1001];
char b[1001];
gets(a);
gets(b);
int la=strlen(a);
int lb=strlen(b);
int i,j;
int c=0//计数器,k=0;
for(i=0;i<lb;i++){
for(j=k;j<=la;j++){
if(b[i]==a[j]){//如果b的第一个数找到了,那么第二个数从a[j+1]开始找,找到就跳出循环。
c++;
k=j+1;
break;
}
if(j==la-1&&k!=la||k==la){//先解释||前面:如果a最后一个数不满足条件,那么查找结束。
printf("%d",c);
return 0;//再解释||后面:如果k==la,说明已经遍历到a的最后一个数,那么查找结束。
}
}
}
return 0;
}
个人认为代码很简洁,如果有什么问题请大家指正。
最后
以上就是沉默电话为你收集整理的试题 历届真题 最长子序列【第十届】【决赛】【C组】的全部内容,希望文章能够帮你解决试题 历届真题 最长子序列【第十届】【决赛】【C组】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复