《程序员面试宝典》上也有经典的火车进站问题,类似。

如果12345是压栈顺序,序列45321可能是出栈顺序,但序列43512不可能。

规律:对序列中任意元素n,排在n后且比n小的元素一定是从大到小顺序排列的,可以不相邻。

如果要用编程解决,思路应该是:

依次判断出栈序列中的每个数字,如果下一个弹出的数字是栈顶数字则弹出;如果不是则把剩余的未入栈的数字依次入栈,直到把下一个需要弹出的数字压到栈顶为止。如果所有数字都入栈了还未遇到下一个弹出的数字,则该序列不可能是出栈序列。

相关文章:

  • 2021-12-06
  • 2021-12-08
  • 2021-12-29
  • 2022-01-17
  • 2021-09-29
  • 2022-01-23
  • 2022-01-31
猜你喜欢
  • 2021-10-27
  • 2022-12-23
  • 2021-06-14
  • 2021-11-18
  • 2021-06-11
  • 2021-10-15
相关资源
相似解决方案