Advertisement
IrinaIgnatova

Compare Matrices

Oct 2nd, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.23 KB | None | 0 0
  1. package com.company;
  2.  
  3.  
  4. import java.io.IOException;
  5.  
  6.  
  7. import java.util.*;
  8.  
  9. public class Main {
  10.  
  11.  
  12.     public static void main(String[] args) {
  13.         Scanner scanner = new Scanner(System.in);
  14.  
  15.         int[] rowsAndCols = Arrays.stream(scanner.nextLine().split(" "))
  16.                 .mapToInt(Integer::parseInt)
  17.                 .toArray();
  18.  
  19.         int rows = rowsAndCols[0];
  20.         int cols = rowsAndCols[1];
  21.  
  22. //         int[][] arr = new int[rows][cols];
  23. //        for (int r = 0; r <rows ; r++) {
  24. //            arr[r]= Arrays.stream(scanner.nextLine().split(" "))//тук четем по цял масив на ред а не само един int
  25. //                    .mapToInt(Integer::parseInt)//                  и този масив го записваме на текущия индекс
  26. //                    .toArray();
  27. //
  28. //        }
  29.  
  30.         //ДРУГ НАЧИН ЗА ЧЕТЕНЕ И ДА СИ ГО НАПРАВИМ В МЕТОД АКО ЩЕ ЧЕТЕМ ПОВЕЧЕ ОТ ЕДНА МАТРИЦА:
  31.  
  32.         int[][] firstMatrix = readMatrix(rows, cols, scanner);
  33.         // за да прочетем втората трябва пак да си вземем входа:
  34.  
  35.         rowsAndCols = Arrays.stream(scanner.nextLine().split(" "))
  36.                 .mapToInt(Integer::parseInt)
  37.                 .toArray();
  38.  
  39.         rows = rowsAndCols[0];
  40.         cols = rowsAndCols[1];
  41.  
  42.         int[][] secondMatrix = readMatrix(rows, cols, scanner);
  43.  
  44.         //проверяваме дали са еднакви матриците:
  45.         if (AreMatrixEqual(firstMatrix, secondMatrix)) {
  46.             System.out.println("equal");
  47.  
  48.         } else {
  49.             System.out.println("not equal");
  50.         }
  51.  
  52.  
  53.     }
  54.  
  55.     private static boolean AreMatrixEqual(int[][] firstMatrix, int[][] secondMatrix) {
  56.  
  57.         boolean areEqual = true;
  58.         if (firstMatrix.length != secondMatrix.length) {//това ни дава колко масива има във сяка от матриците
  59.             areEqual = false;
  60.         } else {//сравняваме елемент по елемент (всеки един елемент е матрица сам по себе си)
  61.             for (int r = 0; r < firstMatrix.length; r++) {
  62.                 int[] firstArray = firstMatrix[r];
  63.                 int[] secondArray = secondMatrix[r];
  64.                 if (firstArray.length != secondArray.length) {
  65.                     areEqual = false;
  66.                     break;
  67.                 } else {
  68.                     for (int c = 0; c < firstArray.length; c++) {
  69.                         if (firstArray[c] != secondArray[c]) {
  70.                             return false;
  71.                         }
  72.  
  73.                     }
  74.                 }
  75.  
  76.             }
  77.         }
  78.  
  79.         return areEqual;
  80.     }
  81.  
  82.     private static int[][] readMatrix(int row, int col, Scanner scanner) {
  83.         int[][] matrix = new int[row][col];
  84.         for (int r = 0; r < row; r++) {
  85.             String[] elements = scanner.nextLine().split(" ");
  86.             for (int c = 0; c < elements.length; c++) {
  87.                 int number = Integer.parseInt(elements[c]);
  88.                 matrix[r][c] = number;
  89.             }
  90.         }
  91.         return matrix;
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement