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

Posted BreakCircle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 根据入栈顺利判定出栈顺序相关的知识,希望对你有一定的参考价值。

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

 

以上是关于Python 根据入栈顺利判定出栈顺序的主要内容,如果未能解决你的问题,请参考以下文章

栈练习之Example006-判定给定的由 I 和 O 组成的入栈和出栈组成的操作序列是否合法

栈的入栈和出栈的顺序规律是啥?

给定入栈顺序,判断出栈顺序是否合法

如何用函数实现入栈和出栈

给定入栈顺序,判断出栈顺序是否合法

如何理解“入栈、读栈、出栈”