C1052 - 合法的出栈顺序

题目描述

给定N个字符元素,这N个字符元素依次入栈,在入栈的过程中是可以有出栈行为的,然后判断给定的字符序列是否是一个合法的出栈序列

输入格式

第1行包含一个正整数N,表示接下来有N个字符元素用于依次入栈

第2行,一行字符串,由N个不同的字符组成(大小写英文字符、数字字符),不包含空格

第3行,询问次数q,代表接下来会有q次询问

接下来有q行,每行一个字符串,代表一个待询问的出栈序列,每行有N个字符

输出格式

q行,每行代表依次询问的出栈序列是否是合法的出栈序列,如果是,则输出Yes,不是输出No

输入输出样例

输入样例 输出样例
5
ABCDE
3
ABCDE
EDCBA
EBADC
Yes
Yes
No
5
43125
3
52134
52431
43125
Yes
No
Yes

输入输出样例解释

以第1组数据作为说明:

输入样例:

第1行:5,代表接下来会有5个字符输入,这5个字符依次入栈,入栈过程中可以有出栈行为

第2行:ABCDE,代表入栈的字符依次为:A B C D E

第3行:3,代表询问次数为3

第4行:ABCDE,代表一个询问的出栈序列ABCDE,询问该序列是否是合法的出栈序列

第5行:EDCBA,代表一个询问的出栈序列EDCBA,询问该序列是否是合法的出栈序列

第6行,EBADC,代表一个询问的出栈序列EBADC,询问该序列是否是合法的出栈序列

输出样例:

对于ABCDE出栈序列是合法的,输出Yes,因为入栈、出栈顺序可以是:A入栈,A出栈,B入栈,B出栈,C入栈,C出栈,D入栈,D出栈,E入栈,E出栈

对于EDCBA出栈序列是合法的,输出Yes,因为入栈、出栈顺序可以是:A入栈,B入栈,C入栈,D入栈,E入栈,E出栈,D出栈,C出栈,B出栈,A出栈

对于EBADC出栈序列是不合法的,输出No,因为无法如何入栈、出栈组合,都得不到这个出栈序列的

数据范围与提示

100%的数据:$1 \le N \le 10$,$1 \le q \le 10$,

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1052.in,输出文件名为:C1052.out