1367 雙堆棧練習

來源:互聯網
上載者:User
 
描述

注意空間哦,題目很簡單,設想一個雙堆棧總空間容量為100萬個資料。

現在我進行M次操作,可能是出棧,可能是入棧,希望得到最後2個堆棧的資訊。

輸入

第一行包含兩個整數N,M,表示堆棧空間大小為N,一共M次操作。

其中N小於100萬。

以下M行每行格式為以下幾種:

LIN X 表示左邊堆棧入棧一個資料X

RIN X 表示右邊堆棧入棧一個資料X

LOUT 表示左邊堆棧出棧

ROUT 表示右邊堆棧出棧

保證資料合法

輸出

輸出為兩行,分別代表左邊堆棧和右邊堆棧;

第一行為左邊,第二行為右邊;

輸出順序均為從棧底到棧頂輸出。

範例輸入
3 6
LIN 1
RIN 2
LIN 3
ROUT
LOUT
RIN 5
範例輸出
1
5

 

類比題,棧的拓展

#include <stdio.h>char a[500001];char b[500001];long n,m;main(){char t,tt;int upset;int up1,up2;int i;scanf("%ld %ld",&n,&m);up1=up2=0;while(m--){getchar();scanf("%c%c",&t,&tt);if(t=='L'&&tt=='I'){scanf("%c%c",&t,&tt);scanf("%d",&upset);a[up1++]=upset+'0';}if(t=='L'&&tt=='O'){scanf("%c%c",&t,&tt);up1--;}if(t=='R'&&tt=='I'){scanf("%c%c",&t,&tt);scanf("%d",&upset);b[up2++]=upset+'0';}if(t=='R'&&tt=='O'){scanf("%c%c",&t,&tt);up2--;}}for(i=0;i<up1;i++)printf("%c ",a[i]);printf("\n");for(i=0;i<up2;i++)printf("%c ",b[i]);printf("\n");}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.