#38074: stack解法


weihua.tseng@gmail.com (小不點)

學校 : 不指定學校
編號 : 214030
來源 : [61.216.154.146]
最後登入時間 :
2023-11-01 15:56:02
c123. 00514 - Rails -- UVa514 | From: [111.241.108.228] | 發表日期 : 2023-10-23 23:46

在寫這題的時候,要去想火車進入B或Station會不會影響答案。幸運地是,用stack來實作時並不會有這個問題。

如果把火車都放入stack裡再一次一次與測試資料比對,會發現你只是把順序倒過來而已:(

但如果是每放一台車進stack就去跟測試資料比對,會發現這題就輕鬆AC了

還是不理解的話試著用小畫家一步一步畫出來,對腦袋會輕鬆許多~

*stack部分程式碼(c/c++):

stack<int> st;
int rn=0;
for(int i=0; i<n; i++){
     st.push(i+1); //放入一台車
     while(st.size()&&st.top()==test[rn]){ //如果stack有元素且頂部元素跟測試資料相符
     st.pop();
     rn++;
     }
}
 
ZeroJudge Forum