子序列

1、题目内容

Description
题目描述
给你两个字符串a和b,请问字符串a是否可以去掉若干个字符以后成为字符串b?。

输入
第一行是一个整数K,表示样例数。 以后每个样例占2行,分别为两个字符串a和b。字符串只有英文大写字母组成,长度不超过200。

输出
每行输出一个结果,如果包含,输出Yes,否则输出No。

样例输入
2
XATBBU
XTU
XATBBU
UTX
样例输出
Yes
No

2、题目分析

做这个题目的时候我们将字符串b中的字符一个一个的去a中找,看是不是都在a中存在,如果都存在的话那就是满足条件的子序列咯。值得注意的就是说,找字符的时候需要按照b的字符串字符顺序来的。

3、参考代码

#include<stdio.h>
#include<string.h>
int main()
{
	int k;
	scanf("%d",&k);
	while(k--)
	{
		int flag=1;
		int m,n,i,count,sum;
		char a[202],b[202];
		scanf(" %s",a);
		scanf(" %s",b);
	    m=strlen(a);
	    n=strlen(b);
	    count=0;
	    for(i=0;i<m;i++) //在a这个字符串中去找
	    {
	    	if(count<n&&b[count]==a[i]) //找到一个我们就加个1
	    	{
	    		count++;
	    	}
	    }
	    if(count==n) printf("Yes\n"); //如果b中所有的字符都在a中找到了,那就是子序列咯。
	    else         printf("No\n");
	}
	return 0;
}

希望和大可爱啊,一起变得更好~

1143  子序列-LMLPHP

10-07 16:14