(stack栈)rails
題目:
某城市有一個火車站,鐵軌鋪設如圖所示,有n節(jié)車廂從A方向駛入車站,按進站順序編號為1至n。你的任務是判斷是否能讓它們按照某種特定的順序進入B方向的鐵軌并駛出車站。為了重組車廂,你可以借助中轉站C。這是一個可以停放任意多節(jié)車廂的車站,但由于末端封頂,駛入C的車廂必須按照相反的順序駛出車站。例如:出站順序(5,4,1,2,3)是不可能的,而(5,4,3,2,1)是可能的。對于每節(jié)車廂,一旦從A移入C,就不能再回到A了;一旦從C移入B,就不能回到C了。換句話說,在任意時刻,只有兩種選擇A->C和C->B。
現(xiàn)在給你一種1到n的排列,請你判斷是否是題目描述的一種可能,如果是請輸出yes,否則輸出no
輸入
兩行,第一行有一個正整數(shù)n,表示有n節(jié)車廂,第二行有n個正整數(shù),即1到n的一種排列,兩兩之間有一個空格分隔。
輸出
yes或者no
輸入示例
5
5 4 1 2 3
輸出示例
no
分析與解答:
原數(shù)組元素:1到n
目標數(shù)組元素:輸入
棧:從棧頂?shù)降?#xff0c;n到1
推論:出棧順序要么是(進一個出一個),要么是棧頂出棧(進多個出一個)
1.當原數(shù)組元素等于目標數(shù)組元素時,先進棧再出棧即可,
2.否則判斷棧頂元素是否等于目標數(shù)組,若相等棧頂元素出棧,
3.若不相等在數(shù)組不為空的情況下將原數(shù)組元素入棧。
4.若都不滿足說明不符合條件,flag = 0,break。
8.2號更新:
模擬了一下過程
總結
以上是生活随笔為你收集整理的(stack栈)rails的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上下位机串口通信 python_怎么将图
- 下一篇: datax 导入数据中文乱码_DataX