Advertisement
Guest User

Untitled

a guest
May 31st, 2021
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.43 KB | None | 0 0
  1. package com.softuni.Fund.Train2.Data.Types;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Scanner;
  5.  
  6. public class UsefullyMethods_JavaFund_Exercise {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         int[] inputArray = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
  10.         String[] commands = scanner.nextLine().split(" ");
  11.  
  12.         while (!commands[0].equals("end")) {
  13.             switch (commands[0]) {
  14.                 case "exchange":
  15.                     int exchangeIndex = Integer.parseInt(commands[1]);
  16.                     createSubArrayFromIndexAndExchange(inputArray, exchangeIndex);
  17.                     break;
  18.                 case "max":
  19.                     String maxOddOrEven = commands[1];
  20.                     if (maxOddOrEven.equals("even")) {
  21.                         giveMaxEvenIndex(inputArray);
  22.                     } else if (maxOddOrEven.equals("odd")) {
  23.                         giveMaxOddIndex(inputArray);
  24.                     }
  25.                     break;
  26.                 case "min":
  27.                     String minOddOrEven = commands[1];
  28.                     if (minOddOrEven.equals("even")) {
  29.                         giveMinEvenIndex(inputArray);
  30.                     } else if (minOddOrEven.equals("odd")) {
  31.                         giveMinOddIndex(inputArray);
  32.                     }
  33.                     break;
  34.                 case "first":
  35.                     int fn = Integer.parseInt(commands[1]);
  36.                     String firstOddOrEven = commands[2];
  37.                     if (firstOddOrEven.equals("even")) {
  38.                         firstCountEven(inputArray, fn);
  39.                     } else if (firstOddOrEven.equals("odd")) {
  40.                         firstCountOdd(inputArray, fn);
  41.                     }
  42.                     break;
  43.                 case "last":
  44.                     int n = Integer.parseInt(commands[1]);
  45.                     String lastOddOrEven = commands[2];
  46.                     if (lastOddOrEven.equals("even")) {
  47.                         lastCountEven(inputArray, n);
  48.                     } else if (lastOddOrEven.equals("odd")) {
  49.                         lastCountOdd(inputArray, n);
  50.                     }
  51.                     break;
  52.             }
  53.             commands = scanner.nextLine().split(" ");
  54.         }
  55.        
  56.         System.out.print("[");
  57.         for (int i = 0; i < inputArray.length; i++) {
  58.             if (i == 0) {
  59.                 System.out.print(inputArray[i]);
  60.             }  else {
  61.                 System.out.print(", " + inputArray[i]);
  62.             }
  63.         }
  64.         System.out.print("]");
  65.  
  66.  
  67.     }
  68.  
  69.     private static void firstCountEven(int[] arr, int count) {
  70.         if (count > arr.length || count <= 0) {
  71.             System.out.println("Invalid count");
  72.         } else {
  73.             int[] subArray = new int[count];
  74.             int counter = 0;
  75.             for (int i = 0; i < arr.length; i++) {
  76.                 if (arr[i] % 2 == 0) {
  77.                     subArray[counter] = arr[i];
  78.                     counter++;
  79.                     if (counter == count) {
  80.                         break;
  81.                     }
  82.                 }
  83.             }
  84.             if (counter == 0) {
  85.                 System.out.println("[]");
  86.             } else if (counter == 1) {
  87.                 System.out.println("[" + subArray[0] + "]");
  88.             } else {
  89.                 for (int i = 0; i < counter; i++) {
  90.                     if (i == 0) {
  91.                         System.out.print("[" + subArray[i] + ", ");
  92.                     } else if (i == counter - 1) {
  93.                         System.out.println(subArray[i] + "]");
  94.                     } else {
  95.                         System.out.print(subArray[i] + ", ");
  96.                     }
  97.                 }
  98.             }
  99.  
  100.         }
  101.  
  102.     }
  103.  
  104.     private static void firstCountOdd(int[] arr, int count) {
  105.         if (count > arr.length || count <= 0) {
  106.             System.out.println("Invalid count");
  107.         } else {
  108.             int[] subArray = new int[count];
  109.             int counter = 0;
  110.             for (int i = 0; i < arr.length; i++) {
  111.                 if (arr[i] % 2 != 0) {
  112.                     subArray[counter] = arr[i];
  113.                     counter++;
  114.  
  115.  
  116.                     if (counter == count) {
  117.                         break;
  118.                     }
  119.                 }
  120.             }
  121.             if (counter == 0) {
  122.                 System.out.println("[]");
  123.             } else if (counter == 1) {
  124.                 System.out.println("[" + subArray[0] + "]");
  125.             } else {
  126.                 for (int i = 0; i < counter; i++) {
  127.                     if (i == 0) {
  128.                         System.out.print("[" + subArray[i] + ", ");
  129.                     } else if (i == counter - 1) {
  130.                         System.out.println(subArray[i] + "]");
  131.                     } else {
  132.                         System.out.print(subArray[i] + ", ");
  133.                     }
  134.                 }
  135.             }
  136.  
  137.         }
  138.  
  139.     }
  140.  
  141.     private static void lastCountEven(int[] arr, int count) {
  142.         if (count > arr.length || count <= 0) {
  143.             System.out.println("Invalid count");
  144.         } else {
  145.             int[] subArray = new int[count];
  146.             int counter = 0;
  147.             for (int i = arr.length - 1; i >= 0; i--) {
  148.                 if (arr[i] % 2 == 0) {
  149.                     subArray[counter] = arr[i];
  150.                     counter++;
  151.  
  152.  
  153.                     if (counter == count) {
  154.                         break;
  155.                     }
  156.                 }
  157.             }
  158.             if (counter == 0) {
  159.                 System.out.println("[]");
  160.             } else if (counter == 1) {
  161.                 System.out.println("[" + subArray[0] + "]");
  162.             } else {
  163.                 for (int i = counter - 1; i >= 0; i--) {
  164.                     if (i == counter - 1) {
  165.                         System.out.print("[" + subArray[i] + ", ");
  166.                     } else if (i == 0) {
  167.                         System.out.println(subArray[i] + "]");
  168.                     } else {
  169.                         System.out.print(subArray[i] + ", ");
  170.                     }
  171.  
  172.                 }
  173.             }
  174.         }
  175.  
  176.     }
  177.  
  178.     private static void lastCountOdd(int[] arr, int count) {
  179.         if (count > arr.length || count <= 0) {
  180.             System.out.println("Invalid count");
  181.         } else {
  182.             int[] subArray = new int[count];
  183.             int counter = 0;
  184.             for (int i = arr.length - 1; i >= 0; i--) {
  185.                 if (arr[i] % 2 != 0) {
  186.                     subArray[counter] = arr[i];
  187.                     counter++;
  188.  
  189.  
  190.                     if (counter == count) {
  191.                         break;
  192.                     }
  193.                 }
  194.             }
  195.             if (counter == 0) {
  196.                 System.out.println("[]");
  197.             } else if (counter == 1) {
  198.                 System.out.println("[" + subArray[0] + "]");
  199.             } else {
  200.                 for (int i = counter - 1; i >= 0; i--) {
  201.                     if (i == counter - 1) {
  202.                         System.out.print("[" + subArray[i] + ", ");
  203.                     } else if (i == 0) {
  204.                         System.out.println(subArray[i] + "]");
  205.                     } else {
  206.                         System.out.print(subArray[i] + ", ");
  207.                     }
  208.  
  209.                 }
  210.             }
  211.         }
  212.  
  213.     }
  214.  
  215.     private static void giveMaxEvenIndex(int[] arr) {
  216.  
  217.         int maxEven = Integer.MIN_VALUE;
  218.         int maxEvenIndex = -1;
  219.         int counter = 0;
  220.         for (int i = 0; i < arr.length; i++) {
  221.             if (arr[i] % 2 == 0 && arr[i] >= maxEven) {
  222.                 counter++;
  223.                 maxEven = arr[i];
  224.                 maxEvenIndex = i;
  225.             }
  226.         }
  227.         if (counter > 0) {
  228.             System.out.println(maxEvenIndex);
  229.         } else {
  230.             System.out.println("No matches");
  231.         }
  232.     }
  233.  
  234.  
  235.     private static void giveMaxOddIndex(int[] arr) {
  236.  
  237.         int maxOdd = Integer.MIN_VALUE;
  238.         int maxOddIndex = -1;
  239.         int counter = 0;
  240.         for (int i = 0; i < arr.length; i++) {
  241.             if (arr[i] % 2 != 0 && arr[i] >= maxOdd) {
  242.                 counter++;
  243.                 maxOdd = arr[i];
  244.                 maxOddIndex = i;
  245.             }
  246.         }
  247.         if (counter > 0) {
  248.             System.out.println(maxOddIndex);
  249.         } else {
  250.             System.out.println("No matches");
  251.         }
  252.     }
  253.  
  254.     private static void giveMinEvenIndex(int[] arr) {
  255.  
  256.         int minEven = Integer.MAX_VALUE;
  257.         int minEvenIndex = -1;
  258.         int counter = 0;
  259.         for (int i = 0; i < arr.length; i++) {
  260.             if (arr[i] % 2 == 0 && arr[i] <= minEven) {
  261.                 counter++;
  262.                 minEven = arr[i];
  263.                 minEvenIndex = i;
  264.             }
  265.         }
  266.         if (counter > 0) {
  267.             System.out.println(minEvenIndex);
  268.         } else {
  269.             System.out.println("No matches");
  270.         }
  271.     }
  272.  
  273.     private static void giveMinOddIndex(int[] arr) {
  274.  
  275.         int minOdd = Integer.MAX_VALUE;
  276.         int minOddIndex = -1;
  277.         int counter = 0;
  278.         for (int i = 0; i < arr.length; i++) {
  279.             if (arr[i] % 2 != 0 && arr[i] <= minOdd) {
  280.                 counter++;
  281.                 minOdd = arr[i];
  282.                 minOddIndex = i;
  283.             }
  284.         }
  285.         if (counter > 0) {
  286.             System.out.println(minOddIndex);
  287.         } else {
  288.             System.out.println("No matches");
  289.         }
  290.     }
  291.  
  292.  
  293.     private static void createSubArrayFromIndexAndExchange(int[] arr, int in) {
  294.  
  295.         if (in < arr.length && in >= 0) {
  296.  
  297.             int[] subArr = new int[arr.length - (in + 1)];
  298.             int j = 0;
  299.             for (int i = in + 1; i < arr.length; i++) {
  300.                 subArr[j] = arr[i];
  301.                 j++;
  302.             }
  303.             int k = 0;
  304.             int[] subArr2 = new int[arr.length - (subArr.length)];
  305.             for (int i = 0; i < subArr2.length; i++) {
  306.                 subArr2[k] = arr[i];
  307.                 k++;
  308.             }
  309.  
  310.             for (int i = 0; i < subArr.length; i++) {
  311.                 arr[i] = subArr[i];
  312.             }
  313.             for (int i = 0; i < subArr2.length; i++) {
  314.                 arr[i + subArr.length] = subArr2[i];
  315.             }
  316.         } else {
  317.             System.out.println("Invalid index");
  318.         }
  319.     }
  320. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement