代码补全

代码补全

背景

敲代码时,较长的变量或函数名通常推荐使用驼峰命名法(如winnieThePoohWinnieThePooh)或下划线法(如winnie_the_poohWinnie_The_Pooh等),但是不管三七二十一全部用小写是绝对不推荐的(如winniethepooh)。为什么?这一题将解释原因。

描述

对于一个仅由大小写字母、下划线、数字的字符串(变量名)\(A\),以大写字母或下划线为断点分为几个部分。
winnie_the_pooh分为winnie the pooh 三部分。
对于仅仅由小写字母以及数字组成的字符串\(B\),只要存在一种或多种方法,使其中的每一个字符都能 按顺序 与\(A\)中 被分隔开的 几个部分中的 部分全部字符 匹配完成(每一部分必须 从头开始 匹配,且被匹配的部分在原串中位置连续),则代码补全系统会将该变量(字符串\(A\))当作备选变量推送出去。
简单的说就是主流编译器的代码补全功能。与关键词搜索类似,在寻找uighurInternmentCamp(作为变量名\(A\))时,输入uicuii(字符串\(B\))都可以将这个超长变量作为补全候选。相信这也是固定规则存在的一部分意义。

A:uighurInternmentCamp
B:u_____i_________c___或
B:ui____i_____________

但此时\(A\)串并不能匹配uc,因为在原串中对应部分不连续。

现在有一群变量名,用户敲了几个字母,请你输出符合条件的变量。
按照命名规则,数字不会出现在首位,当作小写字母处理。

格式

输入

第一行为代表用户输入的仅有数字或小写字母的字符串\(B\),第二行为整数\(N\)
接下来\(N\)行为由大小写字母、下划线、数字的字符串(变量名)\(A\)

输出

输出若干行,将所有的能够匹配的字符串按照输入的前后顺序输出,每行一个字符串。
没有则输出单独一行nope

样例

输入1

cguo80w
8
renJunGDPChaoGuo8000WanMeiYuan
sa_ge_er_wang
junZiYiBuQiangZiZiQiangBuXi
tong_shang_kuan_Yi
hun_Yao_shiTing
jinKeLvYu
jianLiGong_Xun2
faXiao

输出1

renJunGDPChaoGuo8000WanMeiYuan

输入2

sgew
4
sa_ge_er_wang
liangjiaheshudan
QingFengBaoZi
_200jinMaiZiBuHuanJian

输出2

sa_ge_er_wang

样例解释

样例1:

renJunGDPChaoGuo8000WanMeiYuan
         C   Guo80  W

样例2:

sa_ge_er_wang
s  g  e  w

若样例2第一行输入ljh则输出nope,无法输出看似可以匹配的liangjiaheshudan,为什么?
因为liangjiaheshudan整体均为小写,无法由固定规则分割,整体看作一个部分,无法匹配ljh
若改为liangJiaHeshudan或者liang_jia_heshudan即可。

提示

输入推荐使用 ' gets ' ' cin.getline ' 读取整行

时空限制

1s, 64MiB

数据范围

考虑到实际编程情况,所有字符串长度都小于\(64\)
对于20%的数据满足 \( 1 \leq N \leq 64 \)。
对于100%的数据满足 \( 1 \leq N \leq 89640 \)

题目来源

被404了

信息

ID
1003
难度
9
分类
(无)
标签
(无)
递交数
5
已通过
2
通过率
40%
被复制
1
上传者