zoukankan      html  css  js  c++  java
  • cf Queries on a String

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    #define maxn 200005
    char s[maxn];
    int nxt[maxn][27],ans[maxn],t[maxn];
    int main(){
        int q;
        scanf("%s %d",s+1,&q);
        int n=strlen(s+1);
        memset(nxt[n],-1,sizeof nxt[n]);
        for(int i=n-1;i>=0;i--)
            for(int j=0;j<26;j++)
                if(s[i+1]-'a'==j) nxt[i][j]=i+1;//下一个 'a'+j 在字符串的第i+1个位置 
                else nxt[i][j]=nxt[i+1][j];//下一个'a'+j字符在字符串的nxt[i+1][j]个位置 
        
        int len=1;
        char op[10],c;
        t[0]=0;
        while(q--){
            scanf("%s",op);
            if(op[2]=='s'){
                cin >> c;
                if(t[len-1]==-1) t[len]=-1;
                else t[len]=nxt[t[len-1]][c-'a'];
                len++;
            }
            else len--;
            if(t[len-1]!=-1) puts("YES");
            else puts("NO"); 
        }
        return 0;
    }
  • 相关阅读:
    网页加载进度条
    BFC
    Java — 基础语法
    Python — 多进程
    Python — 进程和线程
    Python — 面向对象进阶2
    Python — 面向对象编程基础
    Linnux 05
    Linnux 04
    Linnux 03
  • 原文地址:https://www.cnblogs.com/zsben991126/p/9904975.html
Copyright © 2011-2022 走看看