题意理解
一组火车进站,编号从0到9,数量和顺序不定,求所有可能的出站顺序
问题分析
用栈数据结构
用穷举法,先用排列数next_permutation遍历所有情况,然后验证序列是否符合出栈的要求。
验证出栈序列方法,逐个元素遍历入栈序列,先入栈,当栈不空,比较栈顶元素和出站序列第一个元素,如果相同,同时删掉栈顶和出站序列元素,出站序列指向下一个元素,如果不同,比较遍历下一个元素
其他
此题正面硬刚难受,穷举搜索思路自然很多
验证出栈序列是先遍历入栈序列,再判断栈元素,每次判断当前元素,需要取栈中元素循环判断。
实在想不出来好办法,就参考别人的思路,不能闷头搞,时间要紧。学习
链接
https://github.com/xierensong/learngit/blob/master/ncode/8/8.cpp