当前位置: 代码迷 >> 综合 >> 1813 堆栈的利用
  详细解决方案

1813 堆栈的利用

热度:11   发布时间:2023-12-05 17:52:06.0

1813 堆栈的利用

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :131072/65536 KB(Java/Others)

提交数 : 246 | 通过数 : 65

题目描述

堆栈是一个重要的数据结构,简单的说,它就是一个先进后出的结构,学会如何使用它是非常必要的,这个简单的例子让你学会使用堆栈处理。
输入中包括两种语句:
1)	Push word;
2)	Pop;
其中,Push代表入栈,后面跟着一个词语代表要入栈的词语,Pop代表出栈,要求同时输出出栈的词组。

输入要求

首先是一个t,代表有t组实例,然后每组包含不定数目Push,Pop语句,但是每组完毕会用一行单独的“Finish”表示,输入保证不会出现空栈有出栈的操作,一次在栈的的元素不超过1000,词语的长度保证在10以内(包括10),只包含大小写字母

输出要求

每次出现Pop就输出出栈的词语,单独一行,词语用小写输出。每一组完毕输出一个数字,代表栈内剩余的词语数目。然后是一个空行

输入样例

3
Push first
Pop
Push second
Push thIRd
Pop
FinishPush firST
FinishPush fiRST
Push second
Pop
Pop
Finish

输出样例

first
third
11second
first
0
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int main()
{int n;cin>>n;for(int i=0;i<n;i++){string a;string s[N];int tt=0;while(cin>>a){if(a=="Finish"){cout<<tt<<endl;cout<<endl;break;}if(a=="Push"){string b;cin>>b;for(int j=0;j<b.size();j++){if(b[j]>='A'&&b[j]<='Z'){b[j]=b[j]+32;}}s[tt]=b;tt++;}if(a=="Pop"){cout<<s[tt-1]<<endl;tt--;}}}return 0;
}