本题考查队列与栈的模拟判定。∣U∣=∣V∣≤2×105,需要线性做法。
both;仅栈可行输出 stack;否则输出 neither。网络设备收发管理中,入站数据包按序列 U 进入缓冲区,再按序列 V 送往发送区。缓冲规则只有两种:
数据包按 U 的顺序逐个入缓冲;任意时刻既可以把当前可取出的那一个数据包送出,也可以先让后续数据包继续入缓冲。全部数据包最终都要送出,形成 V。请判断实际使用的是哪一种缓冲规则。
首先一行:由小写字母组成的字符串 U,表示入站顺序。
随后一行:由小写字母组成的字符串 V,表示出站顺序。
1≤∣U∣=∣V∣≤200000
U 与 V 等长,且每个小写字母的出现次数相同。
写出一行字符串:
queuestackbothneither输入
go
go
输出
both
说明
队列:入站与出站顺序一致,得到 go。
栈:g 入缓冲后立即送出,o 入缓冲后立即送出,也能得到 go。
输入
cat
tac
输出
stack
说明
队列:只能得到 cat。
栈:三个字符全部入缓冲后再依次取出,得到 tac。
输入
cat
cta
输出
stack
说明
队列:只能得到 cat。
栈:c 进入后取出;再让 a、t 进入;先取出 t 再取出 a,得到 cta。
输入
cat
tca
输出
neither
说明
队列:只能得到 cat。
栈:若第一个出站的是 t,则 c、a、t 必须都已入栈,此时栈顶为 t、其下为 a,无法接着取出 c 得到 tca。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册