Problem A: STL——管道二

发布时间:2023-05-26 09:40:07

Home

Web Board

ProblemSet

Standing

Status

Statistics

Problem A: STL——管道二

Time Limit: 1 Sec Memory Limit: 128 MB

Submit: 1847

Solved: 1112

[Submit][Status][Web Board]

Description

现在有一条垂直可容纳许多字符串的管道。我们定义了以下操作。

1.插入 将字符串压入管道中,新压入的字符串位于管道顶部。

2.插入 将字符串压入管道中,新压入的字符串位于管道底部。

3.输出管道中最低端字符串,如果管道为空,输出-1

4.输出管道中最高端的字符串,如果管道为空,输出-1

5.删除最低端字符串。删除后,原来位于第二低端的字符串到最低端。如果管道为空,则输出-1

6.删除最高端字符串。删除后,原本位于第二高的字符串到最高端。如果管道空,则输出-1

0.清空管道

Input

第一行为是整数Q 不超过1000

之后Q行 每行首先是一个整数 代表操作 0~6 三种操作分别对应

若操作为一 然后跟随一个字符串 只包含小写字母

Output

每2个操作输出相应的答案

Sample Input

31 a2 b3

Sample Output

b

HINT

STL中的deque可以很容易地完成这个问题。

Append Code

[ Submit][Status][Web Board]

한국어<中文فارسیEnglishไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAMGPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include <iostream>#include <deque>using namespace std;int main(){    int Q;    while( cin >> Q )    {          deque <string> q;       for(int i = 0; i < Q; i++)       {           int num;           cin >> num;          switch(num)          {              case 1 :                  {                      string temp;                      cin >> temp;                      q.push_back(temp);                      break;                  }              case 2:                {                     string temp;                     cin >> temp;                     q.push_front(temp);                     break;                }              case 3:                {                    if(q.empty())                        cout << "-1" << endl;                    else                        cout << q.front() << endl;                    break;                }                case 4:                {                    if(q.empty())                        cout << "-1" << endl;                    else                        cout << q.back() << endl;                        //cout << *q.end() << endl;                    break;                }                case 5:                    {                        if(q.empty())                            cout << "-1" << endl;                        else                            q.pop_front();                        break;                    }                    case 6:                    {                        if(q.empty())                            cout << "-1" << endl;                        else                            q.pop_back();                        break;                    }                    case 0:                        {                            q.clear();                            break;                        }                    default: { break; }           }        }     }}

上一篇 mybatis-config详解
下一篇 单链表

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题