题意: 给出两个字符串 a,b。问 能否在 b串中删去某些元素 后 得到a;
若能 输出Yes,否则No;
思路:对a每个元素 在b中查找,若找到 则记录 该元素在b中的位置,继续从记录位置查找下一个元素。
直到 全部找到, 或 找不到。
1Y 无压力
#include <iostream>
using namespace std;
const int N = 100010;
char a[N],b[N];
int main()
{
int loc,len_a,len_b,i,j,t,flag;
while(scanf("%s %s", &a, &b)!=EOF)
{
len_a = strlen(a); len_b = strlen(b);
loc=flag=-1;
for(i=0; i<len_a; i++)
{
t = loc;
for(j=loc+1; j<len_b; j++)
{
if(b[j]==a[i])
{
loc = j;
break;
}
}
if(t==loc)
{
flag = 1;
break;
}
}
if(flag==1) printf("No\n");
else printf("Yes\n");
}
return 0;
}