我是靠谱客的博主 沉默电话,最近开发中收集的这篇文章主要介绍试题 历届真题 最长子序列【第十届】【决赛】【C组】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这个题网上大多数的思路是动态规划,其实简单的循环算法也可以解决,下面是我的代码:

#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组】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部