面试题:关于一个栈的输入顺序是1,2,3,4,5则下列序列中不可能是出栈顺序(解题思路)
看到一道web前端笔试题,关于栈的应用,个人总结了一些方法和思维:
题目:一个栈的输入顺序是1,2,3,4,5则下列序列中不可能是出栈顺序是()
A:1,2,3,4,5
B:5,4,3,2,1
C:4,3,5,1,2
D:4,5,3,2,1
答案:c
概念:栈是先进后出
解题思路:看每个答案的首个输出数字,因为题干给出输入顺序为1~5,但不一定是一次性输入,有可能间断输入,例如:先输入1,2进栈,再按情况出栈,再输入3,4,5,再出栈。所以可以根据答案的首个字母判断输入顺序:
A:由于首个数字是1,可以判断首次输入只有1,第二个数字为2,可能情况为1出栈,2进栈,当前栈中只有2,以此类推2出栈,3进栈,3出栈,4进栈,4出栈,5进栈,该方法中栈中始终只有一个数字
B:首个数字是5,判断首次输入顺序为1,2,3,4,5,并且一次性输入,故出栈顺序为5,4,3,2,1
C:首个数字是4,首次输入顺序为1,2,3,4,根据答案来:4先出栈,3再出栈,之后5进栈,5出栈,此时栈中有1,2,所以出栈顺序应该为2,1,而不是1,2(先进后出),故C错误
D:首个数字是4,首次输入顺序为1,2,3,4,根据答案来:4先出栈,5再进栈,之后5出栈,此时栈中有1,2,3,根据先进后出,出栈顺序为3,2,1。
总结:根据答案首个输入数字,判断首次输入顺序为:1~答案给的首个数字 ,什么时候出栈可根据答案来尝试
- 题干 答案 首次输入顺序
输入顺序是1,2,3,4,5 A:1,2,3,4,5 1~1
输入顺序是1,2,3,4,5 B:5,4,3,2,1 1~5
输入顺序是1,2,3,4,5 C:4,3,5,1,2 1~4
输入顺序是1,2,3,4,5 D:4,5,3,2,1 1~4
练习:
题目:一个栈的输入顺序是a,b,c,d,e则下列序列中不可能是出栈顺序是()
A:e,d,a,c,b
B:a,e,d,c,b
C:b,c,d,a,e
D:b,c,a,d,e
答案:A