Python 根据入栈顺利判定出栈顺序

时间:2021-06-18 16:17:31

1.读取入栈,出栈数据;

2.把数据分别转化成整数列表;

3.新建栈列表,用入栈数据进行压栈;如果栈列表不为空,并且栈顶层数据为出栈的元素;删除栈列表的顶层数据;

4.如果栈列表不为空,说明栈列表里面的元素没有删除完;那么出栈就不成功;反之,成功;

 1 import sys
2 while True:
3 try:
4 a = sys.stdin.readline().strip() # 入栈
5 b = sys.stdin.readline().strip() # 出栈
6 # 转化成列表
7 a_lst = list(map(int,a.split(",")))
8 b_lst = list(map(int,b.split(",")))
9 # 入栈列表不为空且最后一个元素与出栈元素一样,那就删除它;
10 stack = []
11 j = 0 #出栈索引
12 for i in a_lst:
13 stack.append(i)
14 while stack and (stack[-1] == b_lst[j]):
15 stack.pop()
16 j += 1
17 if len(stack) == 0:
18 print("true")
19 else:
20 print("false")
21 except:
22 break