ulvis.paste.net - pastebin

Paste Search Dynamic
Recent pastes
doctor
  1. package com.telerikacademy.tasks.homework;
  2.  
  3. import java.util.*;
  4.  
  5. public class DoctorsOffice {
  6.  
  7.     private static Map<String, Integer> map = new HashMap<>();
  8.     private static ArrayList<String> arrayList = new ArrayList<>();
  9.  
  10.     public static void main(string[] args) {
  11.  
  12.         Scanner scanner = new Scanner(system.in);
  13.         Stack<Integer> ints = new Stack<>();
  14.  
  15.  
  16.         while (true) {
  17.             string command = scanner.nextLine();
  18.             if (command.equals("End")) {
  19.                 break;
  20.             }
  21.             system.out.println(executeCommand(command));
  22.         }
  23.  
  24.     }
  25.  
  26.     private static string executeCommand(string command) {
  27.         int i = command.indexOf(" ");
  28.         string firstWord = command.substring(0, i);
  29.         string remainder = command.substring(i + 1);
  30.         switch (firstWord) {
  31.             case "Append":
  32.                 return appendCommand(remainder);
  33.             case "Insert":
  34.                 return insertCommand(remainder);
  35.             case "Find":
  36.                 return findCommand(remainder);
  37.             case "Examine":
  38.                 return examineCommand(remainder);
  39.             default:
  40.                 return "Wrong command";
  41.         }
  42.     }
  43.  
  44.     private static string examineCommand(string remainder) {
  45.         int numberOfExaminees = integer.parseInt(remainder);
  46.         StringBuilder examinedPeople = new StringBuilder();
  47.         if (numberOfExaminees > arrayList.size()) {
  48.             return "Error";
  49.         } else {
  50.             for (int i = 0; i < numberOfExaminees; i++) {
  51.                 string currentExaminee = arrayList.remove(0);
  52.                 examinedPeople.append(currentExaminee).append(" ");
  53.                 map.put(currentExaminee, map.get(currentExaminee) - 1);
  54.             }
  55.             return examinedPeople.toString().trim();
  56.         }
  57.     }
  58.  
  59.     private static string findCommand(string remainder) {
  60.         return map.getOrDefault(remainder, 0).toString();
  61.     }
  62.  
  63.     private static string insertCommand(string remainder) {
  64.         int index = integer.parseInt(remainder.substring(0, remainder.indexOf(" ")));
  65.         string personName = remainder.substring(remainder.indexOf(" ") + 1);
  66.         int size = arrayList.size();
  67.  
  68.         if (index <= size) {
  69.             arrayList.add(index, personName);
  70.             map.put(personName, map.getOrDefault(personName, 0) + 1);
  71.             return "OK";
  72.         } else {
  73.             return "Error";
  74.         }
  75.     }
  76.  
  77.     private static string appendCommand(string remainder) {
  78.         if (arrayList.add(remainder)) {
  79.             map.put(remainder, map.getOrDefault(remainder, 0) + 1);
  80.             return "OK";
  81.         }
  82.         return "Failed";
  83.     }
Parsed in 0.066 seconds