题解 | #月月查华华的手机#

月月查华华的手机

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

#include<bits/stdc++.h>
#include<iostream>
#include<cstring>
using namespace std;
int nxt[1001000][40];//存放字符串的各位之后26个字母的最近位置
int last[40];//最后last保存的是整个字符串各字母第一次出现的位置
int main()
{
    string s;
    cin>>s;
    int num;
    cin>>num;
    memset(last,-1,sizeof(last));
    for(int j=s.length()-1;j>=0;j--)
    {
        for(int i =0;i<26;i++)
        {
            nxt[j][i] = last[i];
        }
        last[s[j]-'a'] = j;
    }//求华华昵称各位之后26个字母的最近位置
    for(int i=0;i<num;i++)//num个推荐好友
    {
        string s1;
        cin>>s1; 
        int pos = last[s1[0]-'a'];
        int flag=1;
        for(int k=1;k<s1.length();k++)
        {
            pos = nxt[pos][s1[k]-'a'];
            if(pos==-1)
            {
                flag=0;
                cout<<"No"<<endl;
                break;
            }
        }
        if(flag)
            cout<<"Yes"<<endl;
    }
    return 0;
}
全部评论

相关推荐

09-18 20:41
百度_Java
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
09-19 13:59
门头沟学院 Java
用微笑面对困难:Trae一下,如果真成了,他用了直接发字节起诉代码版权,,这个代码不商用是没问题的如果没成也是情理之中的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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