題意理解
一組火車進站,編號從0到9,數量和順序不定,求所有可能的出站順序
問題分析
用棧資料結構
用窮舉法,先用排列數next_permutation遍歷所有情況,然後驗證序列是否符合出棧的要求。
驗證出棧序列方法,逐個元素遍歷入棧序列,先入棧,當棧不空,比較棧頂元素和出站序列第乙個元素,如果相同,同時刪掉棧頂和出站序列元素,出站序列指向下乙個元素,如果不同,比較遍歷下乙個元素
其他此題正面硬剛難受,窮舉搜尋思路自然很多
驗證出棧序列是先遍歷入棧序列,再判斷棧元素,每次判斷當前元素,需要取棧中元素迴圈判斷。
實在想不出來好辦法,就參考別人的思路,不能悶頭搞,時間要緊。學習
鏈結
火車進站問題
給定乙個正整數n代表火車數量,0 比如火車進站 序列問題 c include include include include using std stack using std vector using namespace std bool ispoporder const int put orde...
火車進站問題
描述 給定乙個正整數n代表火車數量,0 知識點棧 執行時間限制 0m記憶體限制0輸入 有多組測試用例,每一組第一行輸入乙個正整數n 0 輸出輸出以字典序排序的火車出站序列號,每個編號以空格隔開,每個輸出序列換行,具體見sample。樣例輸入 31 2 3 樣例輸出 1 2 3 1 3 2 2 1 3...
77 火車進站
題目描述 給定乙個正整數n代表火車數量,0輸出描述 輸出以字典序從小到大排序的火車出站序列號,每個編號以空格隔開,每個輸出序列換行,具體見sample。示例1輸入 31 2 3 輸出1 2 3 1 3 2 2 1 3 2 3 1 3 2 1 此處所謂字典序排序的意思是這n輛火車有多少種出站的可能順序...