华为南研所2014春季机试题目-2不能入住的房客数
来源:互联网 发布:软件设计师考试报名 编辑:程序博客网 时间:2024/04/20 02:42
不能入住的房客数
题目描述:
有一个宾馆,只有m个房间(room),有房客(A~Z)到来时,若有空房间则可以立即入住;没有空房间则不能入住,旅客可以选择立即离开或者等待空房间;
假设给定了各个旅客到达和离开的顺序(如HFBJJBKFHMMSSLPWWPLK),问有多少个旅客没能入住。
要求:
输入:房间数 旅客到达离开的序列
输出:最终没能入住的旅客数
样例:
输入:3 HFBJJBKFHMMSSLPWWPLK
输出:2
思路:
用List集合模拟房间,按旅客到达离开次序进行遍历,来一个旅客首先判断是否已在房间里,若在代表遍历到的是离开的标志;若不在,则看是否有空房间,有则添加进去;
package com.liuhao;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class UserNORooms {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int room = scan.nextInt();// 房间数String users = scan.next();// 旅客到来离开顺序// 采用List方便添加和删除List inList = new ArrayList();// 存放已经住进的旅客int result = 0;// 存放最终的不能入住的旅客数// 按旅客的到来顺序依次遍历,模拟场景for (int i = 0; i < users.length(); i++) {// 先判断是否在房间里,若在则将其删除if (isInRoom(inList, users.charAt(i))) {inList.remove(getRoom(inList, users.charAt(i)));}// 不在,看房间是否注满,没满则添加else if (inList.size() < room) {inList.add(users.charAt(i));}// 不能入住,结果加一else {result++;continue;}}System.out.println(result / 2);// 没能入住的在遍历过程中算了两次}// 判断旅客是否在住private static boolean isInRoom(List inList, char user) {boolean temp = false;for (int i = 0; i < inList.size(); i++) {if (user == (char) inList.get(i)) {temp = true;break;}}return temp;}// 返回旅客在住的房间号private static int getRoom(List inList, char user) {int temp = 0;for (int i = 0; i < inList.size(); i++) {if (user == (char) inList.get(i)) {temp = i;break;}}return temp;}}
0 0
- 华为南研所2014春季机试题目-2不能入住的房客数
- 华为南研所2014春季机试题目-1字符串拼接
- 华为南研所机考练习2-计算麻将的番数
- 华为南研所机考练习2 -求最大递增数
- 华为机试题--回文数的判定
- 2014华为机试题5:回文数
- 华为机试题: 水仙花数
- 2014华为机试题目
- 华为2014机试题目
- 华为2014机试题目
- 【2014校招】华为南研所机试
- 2014华为南研所实习生求职
- 亮着的电灯数--华为机试题
- 华为机试题:求偶数个复数的平均值
- 华为机试题:亮着电灯的盏数
- 【华为机试题】亮着电灯的盏数
- 华为2014机试题2
- 2014华为机试题12:求最大递增数
- 华为2012秋季校招机试题-选秀节目打分(题目来自网络)
- mysql数据库按字段长度排序
- 华为2012秋季校招机试题-数组处理(题目源自网络)
- 华为2012秋季校招机试题-数组奇偶交叉重组(题目源自网络)
- 华为南研所2014春季机试题目-1字符串拼接
- 华为南研所2014春季机试题目-2不能入住的房客数
- IOS 新消息通知提示-声音、震动
- 2013.5.19阿里巴巴实习生笔试题
- 2014年阿里巴巴9月14号笔试题总结
- 成为JavaGC专家Part I:深入浅出Java垃圾回收机制
- libevent事件处理框架分析
- 成为JavaGC专家Part II:如何监控Java垃圾回收机制
- 在git服务器上新建一个工程,怎么把本地的工程对应到远程的git服务器上面的工程
- POJ 1083 Moving Tables