百练 1363.Rails
生活随笔
收集整理的這篇文章主要介紹了
百练 1363.Rails
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:https://vjudge.net/problem/OpenJ_Bailian-1363
Ideas
一道挺明顯的棧的應用題目。
給定一個數字 n,那么進棧的順序就確定了,就是:1, 2, …, N。
但并不是一下全部入棧,而是我們要檢查題目給定的出棧順序,如果出現能夠跟出棧順序匹配上的數字,那么就按照出棧順序出棧,否則就繼續入棧。
如果所有的元素都入棧了,結果出棧順序還沒有檢查完,那就說明此出棧順序進非法。
Code
Python
if __name__ == '__main__':n = int(input())while n != 0:while True:pop_list = list(map(int, input().split(' ')))if pop_list[0] == 0:breakidx, stack = 0, []for i in range(1, n + 1):stack.append(i)while stack and stack[-1] == pop_list[idx]:idx += 1stack.pop()if idx == n:print("Yes")else:print("No")print()n = int(input())總結
以上是生活随笔為你收集整理的百练 1363.Rails的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode Algorithm 4
- 下一篇: 2019年第十届蓝桥杯 - 省赛 - C