题目描述
给定两个字符串a,b,可以在a中任意位置插入字母,问最后是否可以得到b串。
解题思路
我首先想到对两个串进行LCS,发现字符串的长度为100000,果断爆炸。超时超内存。
回归正题,这道题就是一道很水的模拟,只需要从头到尾便利一下b串,判断a串在b串中是否顺序存在即可。
代码部分
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
const int maxn = 1e5 + 10;
char a[maxn], b[maxn];
int main()
{
while(~scanf(" %s %s", a, b))
{
int l1 = strlen(a);
int l2 = strlen(b);
int cas = 0;
for(int i = 0; i < l2; ++ i)
{
if(a[cas] == b[i])
{
cas ++;
}
}
if(cas == l1)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}