icpc 南昌邀请赛网络赛 Subsequence

时间:2023-12-09 23:34:55

题目链接:https://nanti.jisuanke.com/t/38232

就是判断输入是不是子序列 没想到贡献了将近十几次罚时..........可以说是菜的真实了

用cin cout超时了 改了scanf printf才过

#include<bits/stdc++.h>

using namespace std;

int main()
{
char a[],b[];
cin>>a;
int nn=strlen(a);
int n;
cin>>n;
while(n--)
{
scanf("%s",b);
int mm=strlen(b);
if(mm>nn) //b如果比a长就直接输出no
printf("NO\n");
else
{
int p=,q=,flag=;
while(q<mm&&p<nn) //一定要加上p<nn 因为如果下面的if里面没有判断p++之后是不是越界了
{
if(a[p]==b[q])
{
p++;
q++;
}
else
{
p++;
if(p==nn)
{
flag=;
break;
}
}
}
if(flag&&q==mm) //这里要加上q==mm 判断是不是b数组全匹配了
printf("YES\n");
else
printf("NO\n");
}
}
}