#X3043. 查找表达式
查找表达式
Description
在一些高级的记事本中,支持使用表达式来支持高级的查找。
这里我们定义一个特殊的表达式----VX表达式。
该表达式做如下规定,
1.该表达式仅用来匹配纯英文字符串(区分大小写)。
2.在表达式中出现字母代表字母本身,下面列出的特殊字符以及特殊格式有特殊含义。
*代表任意一个字母。
例如:表达式*bc
可以成功匹配abc,bbc,bbbc
(bbbc能够成功匹配是因为存在bbc,这部分符合VX表达式)
[...]形如这种格式的,将被解释为一个集合。并且集合中元素支持使用'-'字符来描述一段连续的元素。(一段连续的元素可以是a-z和A-Z中的一部分,我们认为A-z不是一段连续的元素,因此也不会出现A-z这样跨越大小写的)
例如表达式[a-zA-z]和*是等价的
表达式[a-z]匹配一个小写英文字母
表达式[A-K]匹配一个大写的A到K范围内的一个英文字母。
表达式[aAzZ]匹配一字母,该字母只能是a,A,z和Z
(成功匹配:指目标字符串符合表达式定义的规则。)
现在给定一个表达式和若干字符串,判断这些字符串能不能匹配。
(如果字符串长度不足以匹配完表达式也算匹配失败,例如表达式abc不能成功匹配ab)
Format
Input
第一行,一个表达式。(长度不超过20)
第二行,一个数字K,表示有K个字符串要尝试匹配。
接下来K行,每行一个字符串。(长度不超过20)
Output
一共有K行。
如果第K个字符串能成功匹配,则在第K行输出YES,否则输出NO。
Samples
oz*A[A-Z][B-Z]***
2
ozzAAAozn
oznACMozn
NO
YES
Limitation
1s, 1024KiB for each test case.
相关
在以下作业中: