UVA10340 - All in All(紫书习题3.9)
输入两个字符串s和t,判断是否可以从t中删除0个或者多个字符(其他字符顺序不变),得到字符串s。例如,abcde可以得到bce,但无法得到cb。
Input
输入多组数据
每组一行包含两个字符串s和t,两字符串之间用空格隔开。
字符串长度在100000以内
Output
输出Yes或No
Sample Input
sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter
Sample Output
Yes
No
Yes
No
思路:略水,直接依次比较就行了
#include <iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char str[1000010],pat[1000010];//pat为模式串,str为主串
int charge()
{
int len1=strlen(str),len2=strlen(pat);
int i=0,j=0,count=0;
if(len1<len2)
return 0;
for(;i<len1;++i)
{
if(str[i]==pat[j])
++j;
}
if(j==len2)
return 1;
return 0;
}
int main()
{
while(scanf("%s%s",pat,str)!=EOF)
{
int i= charge();
if(i)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}