火车进站【牛客网】

题意理解

一组火车进站,编号从0到9,数量和顺序不定,求所有可能的出站顺序

问题分析

用栈数据结构

用穷举法,先用排列数next_permutation遍历所有情况,然后验证序列是否符合出栈的要求。

验证出栈序列方法,逐个元素遍历入栈序列,先入栈,当栈不空,比较栈顶元素和出站序列第一个元素,如果相同,同时删掉栈顶和出站序列元素,出站序列指向下一个元素,如果不同,比较遍历下一个元素

其他

此题正面硬刚难受,穷举搜索思路自然很多

验证出栈序列是先遍历入栈序列,再判断栈元素,每次判断当前元素,需要取栈中元素循环判断。

实在想不出来好办法,就参考别人的思路,不能闷头搞,时间要紧。学习

链接

https://github.com/xierensong/learngit/blob/master/ncode/8/8.cpp

猜你喜欢

转载自blog.csdn.net/xiexie1357/article/details/85334808