news 2026/4/15 19:19:22

月月查华华的手机【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
月月查华华的手机【牛客tracker 每日一题】

月月查华华的手机

时间限制:2秒 空间限制:256M

知识点:思维题

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

月月和华华一起去吃饭了。期间华华有事出去了一会儿,没有带手机。月月出于人类最单纯的好奇心,打开了华华的手机。哇,她看到了一片的Q Q QQQQ推荐好友,似乎华华还没有浏览过。月月顿时醋意大发,出于对好朋友的关心,为了避免华华浪费太多时间和其他网友聊天,她要删掉一些推荐好友。但是为了不让华华发现,产生猜疑,破坏了他们的友情,月月决定只删华华有可能搭讪的推荐好友。
月月熟知华华搭讪的规则。华华想与某个小姐姐搭讪,当且仅当小姐姐的昵称是他的昵称的子序列。为了方便,华华和小姐姐的昵称只由小写字母构成。为了更加方便,保证小姐姐的昵称长度不会比华华的长。
现在月月要快速的判断出哪些推荐好友要删掉,因为华华快回来了,时间紧迫,月月有点手忙脚乱,所以你赶紧写个程序帮帮她吧!

输入描述:

第一行输入一个字符串A AA表示华华的昵称。
第二行输入一个正整数N NN表示华华的推荐好友的个数。

接下来N NN行,每行输入一个字符串B i B_iBi表示某个推荐好友的昵称。

1 ≤ ∣ A ∣ ≤ 1 0 6 , 1 ≤ N ≤ 2 × 1 0 5 , 1 ≤ ∑ i = 1 N B i ≤ 1 0 6 1≤∣A∣≤10^6,1≤N≤2×10^5,1≤∑_{i=1}^NB_i≤10^61≤∣A∣≤1061N2×1051i=1NBi106

输出描述:

输出N NN行,对于第i ii个推荐好友,如果华华可能向她搭讪,输出Y e s YesYes,否则输出N o NoNo
注意大写,同时也要注意输出效率对算法效率的影响。

示例1

输入:

noiauwfaurainairtqltqlmomomo 8 rain air tql ntt xiaobai oiiiooo orzcnzcnznb ooooo

输出:

Yes Yes Yes Yes No Yes No No

备注:

本题已于下方时间节点更新,请注意题解时效性:

  1. 2025 − 12 − 15 2025-12-1520251215n nn的数据范围从1 0 6 10^6106缩减至2 × 1 0 5 2×10^52×105,同时增加了若干组数据。

解题思路

首先预处理华华的昵称字符串A AA,构建一个二维数组s ss(大小为(l e n ( A ) + 1 ) × 26 len(A)+1)×26len(A)+1)×26),从后往前遍历A AA,记录每个位置i ii26 2626个小写字母在i ii及之后第一次出现的索引(初始时最后一个位置的所有字母索引设为− 1 -11);随后处理每个好友的昵称字符串B BB,用指针p o s pospos跟踪A AA中当前匹配的位置,逐个遍历B BB的字符,查找该字符在A AAp o s pospos位置之后的首次出现索引,若不存在则判定B BB不是A AA的子序列(输出N o NoNo),若存在则更新p o s pospos为该索引+ 1 +1+1,遍历完成则判定为子序列(输出Y e s YesYes);该方法预处理时间复杂度为O ( l e n ( A ) × 26 ) O(len(A)×26)O(len(A)×26),单次查询为O ( l e n ( B ) ) O(len(B))O(len(B)),适配l e n ( A ) len(A)len(A)和所有B BB的长度和达1 e 6 1e61e6N NN2 e 5 2e52e5的规模,通过预处理避免重复查找,高效完成子序列判断。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e5+10;constll M=26;intmain(){string x;cin>>x;ll n=x.size();vector<array<ll,M>>s(n+1);for(ll c=0;c<M;c++)s[n][c]=-1;for(ll i=n-1;i>=0;i--){s[i]=s[i+1];s[i][x[i]-'a']=i;}ll t;cin>>t;while(t--){string y;cin>>y;ll pos=0;boolok=1;for(charc:y){ll idx=c-'a';if(pos>n||s[pos][idx]==-1){ok=0;break;}pos=s[pos][idx]+1;}cout<<(ok?"Yes\n":"No\n");}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:00:13

WebRTC 架构概览(整体框架篇)

WebRTC 架构概览&#xff08;整体框架篇&#xff09; 本文是 WebRTC 系列专栏的第二篇&#xff0c;将深入剖析 WebRTC 的整体架构&#xff0c;包括浏览器中的实现架构、API 体系、信令流程以及底层媒体引擎 libwebrtc 的结构。 目录 WebRTC 在浏览器中的架构API 体系详解WebRT…

作者头像 李华
网站建设 2026/4/15 13:10:53

写一个最简单的 WebRTC Demo(实操篇)

写一个最简单的 WebRTC Demo&#xff08;实操篇&#xff09; 本文是 WebRTC 系列专栏的第三篇&#xff0c;我们将动手实践&#xff0c;从零开始构建一个完整的 WebRTC 音视频通话 Demo。通过这个实战项目&#xff0c;你将深入理解 WebRTC 的工作流程。 目录 项目概述获取摄像头…

作者头像 李华
网站建设 2026/4/15 20:25:37

Qt QtWebEngine 白屏的解决方案

公众号:cpp手艺人 Qt QtWebEngine 白屏的解决方案 最近在项目中有同事反馈,软件在开启的瞬间和长时间挂机之后,会出现白屏的现象。 先来看看白屏的常见原因和解决方案 1、QtWebEngine 白屏最常见的 5 大原因和解决方案: 主要原因 解决方式 GPU 加速问题 禁用 GPU、使用…

作者头像 李华
网站建设 2026/4/13 15:12:09

TCU变速箱控制器仿真模型:从代码到现实的传动艺术

TCU变速箱控制器仿真模型-含&#xff08;设计文档&#xff09; 乘用车AMTTCU变速箱控制器仿真模型算法模块&#xff0c;含&#xff0c;TCU应用层软件&#xff0c;驱动制动数学模型&#xff0c;电机传动数学模型&#xff0c;车辆数学模型等,在售产品已量产。 含有的功能模块包括…

作者头像 李华
网站建设 2026/4/13 19:59:09

QWebEngine 是什么?与 Chromium 的关系解析

公众号:cpp手艺人 QWebEngine 是什么?与 Chromium 的关系解析 1. 概述:QWebEngine 是什么? QWebEngine 是 Qt 框架中用于嵌入现代 Web 内容的核心模块,自 Qt 5.4(2014年)起正式引入,取代了旧版的 QtWebKit。它基于 Chromium 项目构建,为 Qt 应用程序提供高性能、安…

作者头像 李华