RQNOJ系统遇到了一个程序错误。

您可以通过邮件support (at) rqnoj.cn与我们进行联系。请附错误参考编号:353820

Like操作符 - 题库 - RQNOJ
PID312 / Like操作符
题目描述

一个团队研发了一种新的数据管理系统,他们需要你来帮助来写一个‘like’操作符。

‘Like’操作符按照以下方式工作。他会返回true如果一个字符串能完全被所指定的模板所匹配。模板中可以包含任何符号匹配字符串中相应的符号或者可能包含下列特殊的符号:

%:匹配字符串中若干(包括0)个任意字符

_:匹配字符串中任意一个字符

[с1-с2]:匹配字符串中任意一个在c1-c2范围内的字符

[c1c2c3…cN]:匹配字符串中任意一个在集合{c1,c2,c3,…,cN}中的字符

[^с1-с2]:匹配字符串中任意一个不在c1-c2范围内的字符

[^c1c2c3…cN]:匹配字符串中任意一个不在集合{c1,c2,c3,…,cN}中的字符

  

下面几个提示有助于你理解整个题意:

1. ‘[]’有最高优先级,找到一个最左边的‘[‘再找到后面第1个‘]’,那么你可以确定这2个括号严格地相关联。

2. 模板中不会出现像 [] 和 [^] 这样的不合法数据。

3. 数据中可能出现多种以上的特殊符号,若属于同一个[],以从左至右扫描为准,‘^’只应该认为紧跟在[后面的是有效的

例如[a-cdf]可以匹配a,b,c,d,f中的一个,而[-acdf]可以匹配-,a,c,d,f中的一个,[^a-zA-Z0-9]可以匹配除了大小写字母和数字以外的任何字符,而[a-c-e]可以匹配a,b,c,-,e这5个字符中的一个

输入格式

第1行包含1个正整数N,为数据组数。

接下来N行,每行为一个如下格式的字符串。

字符串 like 模板

字符串或者模板可以包含任何一个ASCII码在32-255间的字符。特别地,单引号(ASCII 39)在字符串或者模板中将会表示为连续2个单引号。字符串或者模板的最多包含100个字符。

输出格式

包含N行,每行对应输入中的一个数据输出YES或者NO。

样例输入
样例输出
提交题目 Error [ 更改语言 ] Language
C C++ Pascal Python2
相关讨论
查看更多讨论
发布新讨论 讨论