icpc 南昌邀请赛网络赛 Subsequence
题目链接:https://nanti.jisuanke.com/t/38232
就是判断输入是不是子序列 没想到贡献了将近十几次罚时..........可以说是菜的真实了
用cin cout超时了 改了scanf printf才过
#include<bits/stdc++.h> using namespace std; int main() { char a[100005],b[10005]; 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=0,q=0,flag=1; while(q<mm&&p<nn) //一定要加上p<nn 因为如果下面的if里面没有判断p++之后是不是越界了 { if(a[p]==b[q]) { p++; q++; } else { p++; if(p==nn) { flag=0; break; } } } if(flag&&q==mm) //这里要加上q==mm 判断是不是b数组全匹配了 printf("YES\n"); else printf("NO\n"); } } }