全在其中
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
你设计了一个新的加密技术,可以用一种聪明的方式在一个字符串的字符间插入随机的字符串从而对信息进行编码。由于专利问题,我们将不会详细讨论如何在原有信息中产生和插入字符串。不过,为了验证你的方法,有必要写一个程序来验证原来的信息是否全在最后的字符串之中。
给定两个字符串s和t,你需要判断s是否是t的“子列”。也就是说,如果你去掉t中的某些字符,剩下字符将连接而成为s。
输入
输入包括多个测试样例。每一个都是由空格分隔的由字母数字ASCII字符组成的两个特定的字符串s和t。s和t的长度不超过100000。
输出
对于每个测试样例,如果s是t的“子列”,则输出”Yes”,否则输出”No”
样例输入
sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter
样例输出
Yes
No
Yes
No
来源
Ulm Local 2002
#include<stdio.h>
bool isson(char s1[],char s2[])
{
int i = 0,j = 0,start = 0;
int nc = 0;
int state = 0;
for(i = 0; s1[i] != '\0';i++)
{
state = 0;
for(j = start; s2[j] != '\0'; j++)
{
if(s1[i] == s2[j])
{
start = j + 1;
nc++;
state = 1;
break;
}
}
if(state)
{
continue;
}
}
if(nc == i)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
char s1[100005],s2[100005];
while(~scanf("%s%s",s1,s2))
{
printf("%s\n",isson(s1,s2)?"Yes":"No");
}
return 0;
}