题目就是上面的
但是对输出要求比较多的,输出没有截图下来,题目很简单的。主要一些错误操作
两个公共合法判断
1.操作合法
2.车牌号合法
3.停车场不存在
初始停车场:
1.左起还是右起 只能是0 或 1
2.可停车数量要合法
进入停车场:
1.该车是否存在
2.停车场是否由空车位
离开停车场:
1.车是否存在
其中几个比较简单了
Java
package Huawei;import java.util.ArrayList;import java.util.HashMap;import java.util.Scanner;public class Parking { /** * @param args */ // 车停的位置 static ArrayListparking = new ArrayList (); // 车停车次数 static HashMap count = new HashMap (); static int left = -1; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); while(in.hasNext()){ String[] strArr = in.nextLine().split(" "); if(strArr[0].equals("initPark")) initPark(strArr); else if(strArr[0].equals("enterPark")) enterPark(strArr); else if(strArr[0].equals("exitPark")) exitPark(strArr); else if(strArr[0].equals("countIdle")) countIdle(strArr); else if(strArr[0].equals("isExit")) isExit(strArr); else if(strArr[0].equals("isParking")) isParking(strArr); else if(strArr[0].equals("reset")) reset(strArr); else{ System.out.println("ERROR"); } } } /** * 重置停车场 * @param strArr */ public static void reset(String[] strArr){ if(strArr.length !=1){ System.out.println("reset error"); return; } left = -1; parking.clear(); count.clear(); } /** * 是否以前在停车场停过 * @param strArr */ public static void isParking(String[] strArr){ if(strArr.length !=2){ System.out.println("isParking error 1 "); return; } if(isNumber(strArr[1])==false || parking.size()<=0){ System.out.println("isParking error 2"); return; } if(count.containsKey(strArr[1])){ System.out.println("isParking " + strArr[1]); return; } System.out.println("no parking"); } /** * 是否在停车场 * @param strArr */ public static void isExit(String[] strArr){ if(strArr.length !=2){ System.out.println("isExit error 1 "); return; } if(isNumber(strArr[1])==false || parking.size()<=0){ System.out.println("isExit error 2"); return; } int i =0; for(i =0;i =0;i--){ if(parking.get(i).equals("-1")){ parking.set(i, strArr[1]); break; } } } // 没有停车空间 if(i==-1 || i==parking.size()){ System.out.println("no parking place"); return; } // HashMap中记录该车停车的次数 if(count.containsKey(strArr[1])){ count.put(strArr[1],count.get(strArr[1]) + 1); }else{ count.put(strArr[1],1); } System.out.println("welocome "+strArr[1]+","+ i + " parking place"); } public static boolean isNumber(String str){ boolean res = str.matches("[0-9]{5}");// 匹配5位车牌号 return res; } /** * 初始化停车场 * @param strArr */ public static void initPark(String[] strArr){ if(strArr.length !=3){ // 初始输入数组长度是 3 System.out.println("initPark error 1 "); return; } if(strArr[1].matches("[0-9]+") == false){ // 匹配停车位是否是数字 System.out.println("initPark error 2 "); return; } if(strArr[2].matches("[0-9]{1}") == false){ // 起始停车方向只能是一位数字 System.out.println("initPark error 3 "); return; } int num = Integer.valueOf(strArr[1]); left = Integer.valueOf(strArr[2]); if(!(left==0 || left==1) || num<=0){ // 停车方向只能是0 1 停车数量要大于0 System.out.println("initPark error 4 "); return; } if(parking.size()!=0 || count.size()!=0){ // 初始停车场已经存在 错误 System.out.println("initPark error 4"); return; } for(int i =0;i