描述
给定一个由不同小写字母构成的长度不超过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")
该博客主要探讨了一种字符串处理问题,涉及将字符串中的字符依次压入栈中,然后按照特定条件弹出。给定一个不超过8个字符的字符串x,对于多个测试序列,判断它们是否可能是x的合法出栈序列。程序通过模拟栈操作进行验证,输出‘YES’表示匹配成功,‘NO’表示失败。示例输入和输出展示了如何验证字符串如'abc'、'bca'等的出栈序列。
3126

被折叠的 条评论
为什么被折叠?



