描述
给定一个由不同小写字母构成的长度不超过8的字符串x,现在要将该字符串的字符依次压入栈中,然后再全部弹出。
要求左边的字符一定比右边的字符先入栈,出栈顺序无要求。
再给定若干字符串,对每个字符串,判断其是否是可能的x中的字符的出栈序列。
输入
第一行是原始字符串x
后面有若干行,每行一个字符串
输出
对除第一行以外的每个字符串,判断其是否是可能的出栈序列。如果是,输出”YES”,否则,输出”NO”
样例输入
abc abc bca cab
样例输出
YES YES NO
# endcoding : UTF-8
"""
@author = 寻找任大侠
@email = renjx@stu.pku.edu.cn
@create_time = 2022/3/13 2:14
"""
import sys
list_1 = list(input())
# print(list_1)
for line in sys.stdin:
list_2 = list(line)
index = 0
stack = [] # 模拟入栈出栈过程
for i in list_1: # 遍历每个入栈元素
stack.append(i) # 入栈
while len(stack) > 0 and stack[-1] == list_2[index]: # 判者栈顶元素和比对的队列首部是否相同
stack.pop() # 相同就弹栈,一直弹到不同为止
index += 1
if len(stack) == 0:
print("YES") # 栈为空则YES,否则匹配失败NO
else:
print("NO")
版权声明:本文为Knight_Ren原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。