题解 | #牛牛的数列#

月月查华华的手机

https://ac.nowcoder.com/acm/problem/23053

考虑子序列自动机,每个地方自动跳转到下一个字符的位置,进行跳转~

然后模拟这一个过程就好啦!

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+7;
char ch[N];
int ne[N][30];
int main(){
    cin>>ch;
    int n=strlen(ch);
    for(int i=0;i<26;i++)ne[n][i]=-1;
    for(int i=n-1;~i;i--){
        for(int j=0;j<26;j++)ne[i][j]=ne[i+1][j];
        ne[i][ch[i]-'a']=i+1;
    }
    int Q;cin>>Q;
    while(Q--){
        cin>>ch;
        int len=strlen(ch),p=0;
        for(int i=0;i<len&&p!=-1;i++)p=ne[p][ch[i]-'a'];
        if(p!=-1)cout<<"Yes\n";
        else cout<<"No\n";
    }
}
全部评论

相关推荐

zephory:内容太乱了,根本捕捉不到重点,指导你会的很多,但是看不到具体的强项 个人技能宜精不宜多 项目那块太繁琐了,面试官或者hr只想知道你在项目中看了啥以及具体的收益
点赞 评论 收藏
分享
牛牛不会牛泪:脉脉太多这种了,纯水军
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务