2176. 【一命通关】之STL模板

1000ms 512MB 简单 一命通关系列
题目描述

欢迎来到"一命通关"系列第七关!本关考验你对 C++ STL 常用容器的应用能力。

请根据以下五个任务的要求,选择合适的容器完成操作:

任务1:动态数组 (Vector)
读入 n 个整数存入 vector,然后使用迭代器或下标访问,输出所有偶数

任务2:栈的应用 (Stack)
给定一个只包含 '('')' 的字符串,利用 stack 判断括号是否匹配。如果匹配输出 "Valid",否则输出 "Invalid"。

任务3:队列模拟 (Queue)
模拟一个简单的排队系统。输入一系列操作:push x 表示有人入队,pop 表示队首出队。最后输出队列中剩余的所有元素(从队首到队尾)。

任务4:频率统计 (Map)
读入 n 个单词,使用 map<string, int> 统计每个单词出现的次数。最后按字典序输出所有单词及其出现次数。

任务5:去重与排序 (Set)
读入 n 个整数,使用 set 自动去重并排序。最后输出集合中所有不重复的元素(从小到大)。

输入格式
  1. 第一行:整数 n1,接下来一行 n1 个整数(任务1)。
  2. 第二行:一个括号字符串(任务2)。
  3. 第三行:整数 m,接下来 m 行每行一个操作 push xpop(任务3)。
  4. 第四行:整数 n2,接下来一行 n2 个单词(任务4)。
  5. 第五行:整数 n3,接下来一行 n3 个整数(任务5)。
输出格式

按照任务顺序输出结果,每个任务的结果占一行或多行(见样例)。

样例 1
输入 (Input)
5
1 2 3 4 5
(())()
4
push 10
push 20
pop
push 30
4
apple banana apple orange
6
5 3 5 1 3 2
输出 (Output)
2 4
Valid
20 30
apple 2
banana 1
orange 1
1 2 3 5
  • Vectorpush_back() 添加元素,size() 获取大小。
  • Stackpush(), pop(), top(), empty()。注意 pop 前要先检查是否为空。
  • Queuepush(), pop(), front(), back()
  • Mapmp[key]++ 可以直接增加计数;map 默认按键的字典序排列。
  • Setinsert() 插入元素;set 默认自动去重并按升序排列。
  • 头文件:需要包含 <vector>, <stack>, <queue>, <map>, <set>, <string>
自测终端 stdin → stdout
输入 stdin
CtrlShiftEnter
输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字