A4301 | 操作大师
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Gold King 想只用键盘实现浏览器的前进、后退、访问功能。浏览器历史记录的行为定义如下:
1. **访问**
- 如果当前历史记录中有“前进”的记录(即当前浏览位置之后还有记录),则将这些记录全部清除。
- 将给定的网址添加到历史记录末尾,并访问该网址(即当前浏览位置移动到新网址)。
- 输出该网址。
2. **后退**
- 如果当前浏览位置之前有历史记录,则后退到前一个网址。
- 输出后退后的网址。
- 如果已经是历史记录的第一个网址,则忽略该操作,输出
3. **前进**
- 如果上一步操作是 **访问(v)**,则忽略本次前进操作,输出
- 否则(上一步是后退或前进),如果当前浏览位置之后有历史记录,则前进到下一个网址,并输出该网址。
- 如果当前已经是最后一条记录,则忽略该操作,输出
注意:
- 输入保证每条操作格式正确,网址不含空格或不可见字符。
- 初始状态下没有历史记录。
1. **访问**
- 如果当前历史记录中有“前进”的记录(即当前浏览位置之后还有记录),则将这些记录全部清除。
- 将给定的网址添加到历史记录末尾,并访问该网址(即当前浏览位置移动到新网址)。
- 输出该网址。
2. **后退**
- 如果当前浏览位置之前有历史记录,则后退到前一个网址。
- 输出后退后的网址。
- 如果已经是历史记录的第一个网址,则忽略该操作,输出
?。3. **前进**
- 如果上一步操作是 **访问(v)**,则忽略本次前进操作,输出
?。 - 否则(上一步是后退或前进),如果当前浏览位置之后有历史记录,则前进到下一个网址,并输出该网址。
- 如果当前已经是最后一条记录,则忽略该操作,输出
?。注意:
- 输入保证每条操作格式正确,网址不含空格或不可见字符。
- 初始状态下没有历史记录。
输入格式
第一行输入一个正整数m,表示有m条操作;
接下来输入 m 行,每行表示一个操作,
前进用一个字母 f 表示;
后退用一个字母 b 表示;
访问用一个字母 v 开头,后面接一条网址,(保证该网址中间没有空格或者其他不可见字符)。
接下来输入 m 行,每行表示一个操作,
前进用一个字母 f 表示;
后退用一个字母 b 表示;
访问用一个字母 v 开头,后面接一条网址,(保证该网址中间没有空格或者其他不可见字符)。
输出格式
输出共 m 行,分别对应每一个操作,
如果浏览器访问了某个网址,则输出该网址;
如果浏览器忽略了这部操作,则输出一个"?"。
如果浏览器访问了某个网址,则输出该网址;
如果浏览器忽略了这部操作,则输出一个"?"。
输入输出样例
输入 #1
4 v xiaomawang.com v xiaoma.wang b f
输出 #1
xiaomawang.com xiaoma.wang xiaomawang.com xiaoma.wang
输入 #2
5 v xiaoma.com.cn b f v www.xiaomawang.com f
输出 #2
xiaoma.com.cn ? ? www.xiaomawang.com ?
$1 \le m \le 2\times10^5$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted