Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.softuni.Fund.Train2.Data.Types;
- import java.util.Arrays;
- import java.util.Scanner;
- public class UsefullyMethods_JavaFund_Exercise {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int[] inputArray = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
- String[] commands = scanner.nextLine().split(" ");
- while (!commands[0].equals("end")) {
- switch (commands[0]) {
- case "exchange":
- int exchangeIndex = Integer.parseInt(commands[1]);
- createSubArrayFromIndexAndExchange(inputArray, exchangeIndex);
- break;
- case "max":
- String maxOddOrEven = commands[1];
- if (maxOddOrEven.equals("even")) {
- giveMaxEvenIndex(inputArray);
- } else if (maxOddOrEven.equals("odd")) {
- giveMaxOddIndex(inputArray);
- }
- break;
- case "min":
- String minOddOrEven = commands[1];
- if (minOddOrEven.equals("even")) {
- giveMinEvenIndex(inputArray);
- } else if (minOddOrEven.equals("odd")) {
- giveMinOddIndex(inputArray);
- }
- break;
- case "first":
- int fn = Integer.parseInt(commands[1]);
- String firstOddOrEven = commands[2];
- if (firstOddOrEven.equals("even")) {
- firstCountEven(inputArray, fn);
- } else if (firstOddOrEven.equals("odd")) {
- firstCountOdd(inputArray, fn);
- }
- break;
- case "last":
- int n = Integer.parseInt(commands[1]);
- String lastOddOrEven = commands[2];
- if (lastOddOrEven.equals("even")) {
- lastCountEven(inputArray, n);
- } else if (lastOddOrEven.equals("odd")) {
- lastCountOdd(inputArray, n);
- }
- break;
- }
- commands = scanner.nextLine().split(" ");
- }
- System.out.print("[");
- for (int i = 0; i < inputArray.length; i++) {
- if (i == 0) {
- System.out.print(inputArray[i]);
- } else {
- System.out.print(", " + inputArray[i]);
- }
- }
- System.out.print("]");
- }
- private static void firstCountEven(int[] arr, int count) {
- if (count > arr.length || count <= 0) {
- System.out.println("Invalid count");
- } else {
- int[] subArray = new int[count];
- int counter = 0;
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] % 2 == 0) {
- subArray[counter] = arr[i];
- counter++;
- if (counter == count) {
- break;
- }
- }
- }
- if (counter == 0) {
- System.out.println("[]");
- } else if (counter == 1) {
- System.out.println("[" + subArray[0] + "]");
- } else {
- for (int i = 0; i < counter; i++) {
- if (i == 0) {
- System.out.print("[" + subArray[i] + ", ");
- } else if (i == counter - 1) {
- System.out.println(subArray[i] + "]");
- } else {
- System.out.print(subArray[i] + ", ");
- }
- }
- }
- }
- }
- private static void firstCountOdd(int[] arr, int count) {
- if (count > arr.length || count <= 0) {
- System.out.println("Invalid count");
- } else {
- int[] subArray = new int[count];
- int counter = 0;
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] % 2 != 0) {
- subArray[counter] = arr[i];
- counter++;
- if (counter == count) {
- break;
- }
- }
- }
- if (counter == 0) {
- System.out.println("[]");
- } else if (counter == 1) {
- System.out.println("[" + subArray[0] + "]");
- } else {
- for (int i = 0; i < counter; i++) {
- if (i == 0) {
- System.out.print("[" + subArray[i] + ", ");
- } else if (i == counter - 1) {
- System.out.println(subArray[i] + "]");
- } else {
- System.out.print(subArray[i] + ", ");
- }
- }
- }
- }
- }
- private static void lastCountEven(int[] arr, int count) {
- if (count > arr.length || count <= 0) {
- System.out.println("Invalid count");
- } else {
- int[] subArray = new int[count];
- int counter = 0;
- for (int i = arr.length - 1; i >= 0; i--) {
- if (arr[i] % 2 == 0) {
- subArray[counter] = arr[i];
- counter++;
- if (counter == count) {
- break;
- }
- }
- }
- if (counter == 0) {
- System.out.println("[]");
- } else if (counter == 1) {
- System.out.println("[" + subArray[0] + "]");
- } else {
- for (int i = counter - 1; i >= 0; i--) {
- if (i == counter - 1) {
- System.out.print("[" + subArray[i] + ", ");
- } else if (i == 0) {
- System.out.println(subArray[i] + "]");
- } else {
- System.out.print(subArray[i] + ", ");
- }
- }
- }
- }
- }
- private static void lastCountOdd(int[] arr, int count) {
- if (count > arr.length || count <= 0) {
- System.out.println("Invalid count");
- } else {
- int[] subArray = new int[count];
- int counter = 0;
- for (int i = arr.length - 1; i >= 0; i--) {
- if (arr[i] % 2 != 0) {
- subArray[counter] = arr[i];
- counter++;
- if (counter == count) {
- break;
- }
- }
- }
- if (counter == 0) {
- System.out.println("[]");
- } else if (counter == 1) {
- System.out.println("[" + subArray[0] + "]");
- } else {
- for (int i = counter - 1; i >= 0; i--) {
- if (i == counter - 1) {
- System.out.print("[" + subArray[i] + ", ");
- } else if (i == 0) {
- System.out.println(subArray[i] + "]");
- } else {
- System.out.print(subArray[i] + ", ");
- }
- }
- }
- }
- }
- private static void giveMaxEvenIndex(int[] arr) {
- int maxEven = Integer.MIN_VALUE;
- int maxEvenIndex = -1;
- int counter = 0;
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] % 2 == 0 && arr[i] >= maxEven) {
- counter++;
- maxEven = arr[i];
- maxEvenIndex = i;
- }
- }
- if (counter > 0) {
- System.out.println(maxEvenIndex);
- } else {
- System.out.println("No matches");
- }
- }
- private static void giveMaxOddIndex(int[] arr) {
- int maxOdd = Integer.MIN_VALUE;
- int maxOddIndex = -1;
- int counter = 0;
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] % 2 != 0 && arr[i] >= maxOdd) {
- counter++;
- maxOdd = arr[i];
- maxOddIndex = i;
- }
- }
- if (counter > 0) {
- System.out.println(maxOddIndex);
- } else {
- System.out.println("No matches");
- }
- }
- private static void giveMinEvenIndex(int[] arr) {
- int minEven = Integer.MAX_VALUE;
- int minEvenIndex = -1;
- int counter = 0;
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] % 2 == 0 && arr[i] <= minEven) {
- counter++;
- minEven = arr[i];
- minEvenIndex = i;
- }
- }
- if (counter > 0) {
- System.out.println(minEvenIndex);
- } else {
- System.out.println("No matches");
- }
- }
- private static void giveMinOddIndex(int[] arr) {
- int minOdd = Integer.MAX_VALUE;
- int minOddIndex = -1;
- int counter = 0;
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] % 2 != 0 && arr[i] <= minOdd) {
- counter++;
- minOdd = arr[i];
- minOddIndex = i;
- }
- }
- if (counter > 0) {
- System.out.println(minOddIndex);
- } else {
- System.out.println("No matches");
- }
- }
- private static void createSubArrayFromIndexAndExchange(int[] arr, int in) {
- if (in < arr.length && in >= 0) {
- int[] subArr = new int[arr.length - (in + 1)];
- int j = 0;
- for (int i = in + 1; i < arr.length; i++) {
- subArr[j] = arr[i];
- j++;
- }
- int k = 0;
- int[] subArr2 = new int[arr.length - (subArr.length)];
- for (int i = 0; i < subArr2.length; i++) {
- subArr2[k] = arr[i];
- k++;
- }
- for (int i = 0; i < subArr.length; i++) {
- arr[i] = subArr[i];
- }
- for (int i = 0; i < subArr2.length; i++) {
- arr[i + subArr.length] = subArr2[i];
- }
- } else {
- System.out.println("Invalid index");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement