当前位置:网站首页>长度为n的入栈顺序的可能出栈顺序
长度为n的入栈顺序的可能出栈顺序
2022-07-05 04:00:00 【诗与浪子】
import itertools
def is_pop_order(push, pop):
""" 根据入栈顺序判断出栈顺序是否合理 :param push: 入栈顺序 :param pop: 出栈顺序 :return: """
if len(push) == 0:
return False
stack = []
j = 0
for i in range(len(push)):
stack.append(push[i])
while j < len(pop) and stack and stack[-1] == pop[j]:
stack.pop()
j += 1
if len(stack) == 0:
return True
else:
return False
if __name__ == '__main__':
push = '123'
sequences = list(itertools.permutations(push, 3))
for sequence in sequences:
pop = ''.join(sequence)
if is_pop_order(push, pop):
print(pop)
# 1 2 3
# 1 3 2
# 2 1 3
# 2 3 1
# 3 1 2 x
# 3 2 1
边栏推荐
猜你喜欢
随机推荐
面试汇总:这是一份全面&详细的Android面试指南
[charging station]_ Secular wisdom_ Philosophical wisdom _
What is the reason why the webrtc protocol video cannot be played on the easycvr platform?
How about programmers' eyesight| Daily anecdotes
What is test development? Why do so many companies hire test developers now?
UI automation test farewell to manual download of browser driver
Basic function learning 02
The order of LDS links
Yuancosmic ecological panorama [2022 latest]
【软件逆向-基础知识】分析方法、汇编指令体系结构
25K 入职腾讯的那天,我特么哭了
Analysis of glibc strlen implementation mode
[wp][introduction] brush weak type questions
speed or tempo in classical music
ABP vNext microservice architecture detailed tutorial - distributed permission framework (Part 1)
@The problem of cross database query invalidation caused by transactional annotation
【web审计-源码泄露】获取源码方法,利用工具
北京程序员的真实一天!!!!!
“金九银十”是找工作的最佳时期吗?那倒未必
线程基础知识