CLZ银行问题

题目描述

CLZ 银行只有两个接待窗口,VIP 窗口和普通窗口,VIP用户进入 VIP 窗口排队,剩下的进入普通窗口排队。现有M 次操作,操作有四种类型,如下:

  • IN name V:表示一名叫 name 的用户到 VIP 窗囗排队
  • OUT V:表示 VIP 窗口队头的用户离开排队
  • IN name N:表示一名叫 name 的用户到普通窗口排队
  • OUT N:表示普通窗口队头的用户离开排队

求 M 次操作结束后 VIP 窗口队列和普通窗口队列中的姓名。

输入描述

第一行是一个整数 M(1≤ M ≤ 1000),表示一共有 M次操作。

第二行到第 M +1行输入操作,格式如下

  • IN name V
  • OUT V
  • IN name N
  • OUT N

输出描述

输出 I 次操作后 VIP 窗囗队列和普通窗口队列中的姓名(从头到尾),先输出 VIP窗口队列后输出普通窗口队列。

输入输出样例

示例 1

输入

5
IN xiaoming N
IN Adel V
IN laozhao N
OUT N
IN CLZ V

输出

Adel
CLZ
laozhao

思路分析

根据题目要求可知,用户成员为先进先出,所以使用队列来存储;再做多次对比判断:操作类型、用户名、用户类型,进行不同操作。

解答

import java.util.*;

public class Main {
static Queue<String> v = new LinkedList<>(); //存储VIP用户
static Queue<String> p = new LinkedList<>(); //存储普通用户
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int m = sc.nextInt(); //m次操作
while (m > 0){
m--;
String op,name,type;
op = sc.next();
if (op.contains("IN")){
name = sc.next();
type = sc.next();
if (type.contains("V")){
v.offer(name);
}else
p.offer(name);
}else {
type = sc.next();
if (type.contains("V")){
v.poll();
}else
p.poll();
}
}
while (v.size() != 0){
System.out.println(v.poll());
}
while (p.size() != 0){
System.out.println(p.poll());
}
}
}

CLZ银行问题的更多相关文章

  1. nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证

    http模块内部封装了http服务器和客户端,因此Node.js不需要借助Apache.IIS.Nginx.Tomcat等传统HTTP服务器,就可以构建http服务器,亦可以用来做一些爬虫.下面简单介 ...

  2. C++ 事件驱动型银行排队模拟

    最近重拾之前半途而废的C++,恰好看到了<C++ 实现银行排队服务模拟>,但是没有实验楼的会员,看不到具体的实现,正好用来作为练习. 模拟的是银行的排队叫号系统,所有顾客以先来后到的顺序在 ...

  3. Dark Mobile Bank之移动银行应用仿冒攻击威胁分析报告

    一.背景 据“第十五次全国信息网络安全状况暨计算机和移动终端病毒疫情调查”调查结果显示,2015年移动终端的病毒感染比例为50.46%,相对于2014年增长了18.96%,移动终端病毒感染率涨幅较大, ...

  4. C#:根据银行卡卡号判断银行名称

    原文地址:android 根据银行卡卡号判断银行 原文是 java ,现在将它翻译成 C# ,并对代码重新编排整理,博主是一个今年刚出来的应届毕业生,不足之处请多多包涵. 根据银行卡号判断所属银行,依 ...

  5. .net 根据银行卡获取银行信息

    using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary ...

  6. NC57银行档案和客商银行账号为建行04 UPDATE

    第二步 银行档案 update bd_bankdoc set bankdoccode='04N'|| bankdoccode , pk_banktype='0001ZZ1000000001OCUD' ...

  7. 通过开户银行账号查询客商名称 sql

    select * from bd_cubasdoc where pk_cubasdoc in ( ') 查询空客商客户银行的单位名称 select b.custcode,b.custname, d.b ...

  8. sql查询单个银行账号重复

    非一单位多银行账号. 今天成都公司熊娇付款时候单位名称在弹出的网银补录变成1,从开户银行看都是正常的,只是在分子公司集团这边点击修改开户银行保存就提示错误“银行账号不能重复” select * fro ...

  9. jsp+servlet+mysql 实现简单的银行登录转账功能

    jsp+servlet+mysql 实现简单的银行登录转账功能 [前期的准备] html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)先从 ...

  10. R12将银行和分行都使用TCA管理

    R12将银行和分行都使用TCA管理,后台保存在HZ_PARTIES . 银行帐号:如果是付款或者是收款(本公司的帐号,内部帐号),都保存在ce_bank_accounts,ce_bank_acct_u ...

随机推荐

  1. 强!推荐一款Python开源自动化脚本工具:AutoKey!

    1.前言 在数字化时代,自动化工具成为了提升工作效率和生产力的重要手段.Python作为一种广泛使用的编程语言,以其强大的功能和易用性受到许多开发者的青睐. 而今天给大家推荐一款开源的自动化脚本工具: ...

  2. Windows自动更新hosts(bat脚本方式)

    为了解决无法打开 github 网页的问题,才有了这个自动更新hosts 的命令脚本 hosts 里的内容会每日更新,内容从这里拿 文件:https://raw.hellogithub.com/hos ...

  3. 25. Socket与粘包问题

    1. Socket概念 Socket允许应用程序通过它发送或接收数据,对其进行像对文件一样的打开.读写和关闭等操作,从而允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信.Socket ...

  4. ASP.NET Core OData 9的发布,放弃 .NET Framework

    Microsoft 于 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9 包. 这个新包将ASP.NET Core与.NET 8 OData库保持一致,改变了OData ...

  5. Android Qcom USB Driver学习(七)

    最近遇到了USB 插拔后,系统重启的问题,抓取串口log发现如下问题,log中查看trace分析就是空指针造成的panic Unable to handle kernel read from unre ...

  6. EAS(能量感知调度)绿色节能调度器

    能量感知调度(EAS)使调度程序能够预测其决策对 CPU 消耗的电量的影响. EAS 依赖于 CPU 的能量模型 (EM) 来为每个任务选择省电的 CPU,同时要求对执行任务的吞吐量的影响最小. EA ...

  7. electon的入口文件 main 指定

    任何 Electron 应用程序的入口都是 main 文件. 这个文件控制了主进程,它运行在一个完整的Node.js环境中,负责控制您应用的生命周期,显示原生界面,执行特殊操作并管理渲染器进程(稍后详 ...

  8. 静态库封装之ComStr类

    ComStr.h #pragma once #include <string> #include <vector> using namespace std; class Com ...

  9. KubeSphere 社区双周报 | Fluent Operator 发布 v2.5.0 | 2023.09.01-09.14

    KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...

  10. 基于云原生的私有化 PaaS 平台交付实践

    作者:牛玉富,某知名互联网公司专家工程师.喜欢开源 / 热衷分享,对 K8s 及 golang 网关有较深入研究. 本文将解读如何利用云原生解决私有化交付中的问题,进而打造一个 PaaS 平台,提升业 ...