3-9 uva 10340 All in All

背景:wa了第一次后,不知道哪里错,又改了改,一直wa,心想妈的一道水题怎么都这样,看来要跪。结果最后发现是Yes打成YES。心中万般草泥马飘过。说多了都是泪。

本题主要是按顺序查找,找到后记录下位置,从下一个位置开始找后面的字符。

#include<stdio.h>
#include<string.h>
char a[100001],b[100001];
int main ()
{
	while(scanf("%s %s",a,b)==2)
	{
		int n=strlen(a);
		int m=strlen(b);
		int i,j;
		int flag=1;
		int p=0;
		if(n>m)
		flag=0;
		else 
		for(i=0;i<n;i++)
		{
			for(j=p;j<m;j++)
			{
				if(a[i]==b[j])
				{
					p=j+1;  //记录下当前找到的位置的下一个位置,使下一轮j从这开始找 
					break;
				}	
			}
			if(j==m)
			{
				flag=0;  //表示没有找到
				break;
			}
		}
		if(flag==1)
		printf("Yes\n");
		else
		printf("No\n");
		memset(a,'\0',sizeof(a));
		memset(b,'\0',sizeof(b));
	}
	return 0;
}

你可能感兴趣的:(3-9 uva 10340 All in All)