Advertisement
Guest User

Untitled

a guest
Sep 28th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.83 KB | None | 0 0
  1. package Abstraction;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class SequenceInMatrix {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         int r = Integer.parseInt(scanner.next());
  9.         int c = Integer.parseInt(scanner.next());
  10.  
  11.         String[][] arr = new String[r][c];
  12.         for (int i = 0; i < r; i++) {
  13.             for (int j = 0; j < c; j++) {
  14.                 arr[i][j] = scanner.next();
  15.             }
  16.         }
  17.         int maxSequence = 0;
  18.         int colmnSeq = -1;
  19.         int rowSeq = -1;
  20.  
  21.         //Diagonals
  22.         for (int i = 0; i < c; i++) {
  23.             int crrSeq = CheckDiagonal(0,i,arr);
  24.             if(crrSeq>=maxSequence){
  25.                 maxSequence=crrSeq;
  26.                 colmnSeq = i;
  27.                 rowSeq = 0;
  28.             }
  29.         }
  30.         for (int i = 1; i < r; i++) {
  31.             int crrSeq = CheckDiagonal(i,0,arr);
  32.             if(crrSeq>=maxSequence){
  33.                 maxSequence=crrSeq;
  34.                 colmnSeq = 0;
  35.                 rowSeq = i;
  36.             }
  37.         }
  38.  
  39.         //Line
  40.         for (int i = 0; i < r ;i++) {
  41.             int crrSeq = CheckLine(i,arr);
  42.             if(crrSeq>=maxSequence){
  43.                 maxSequence=crrSeq;
  44.                 colmnSeq = 0;
  45.                 rowSeq = i;
  46.             }
  47.         }
  48.  
  49.         //Columns
  50.         for (int i = 0; i < c ;i++) {
  51.             int crrSeq = CheckColumn(i,arr,c);
  52.             if(crrSeq>=maxSequence){
  53.                 maxSequence=crrSeq;
  54.                 colmnSeq = i;
  55.                 rowSeq = 0;
  56.             }
  57.         }
  58.         String repeating = arr[rowSeq][colmnSeq]+", ";
  59.         String output = new String(new char[maxSequence-1]).replace("\0", repeating) + arr[rowSeq][colmnSeq];
  60.         System.out.println(output);
  61.  
  62.  
  63.     }
  64.  
  65.     private static int CheckDiagonal(int r, int c, String[][] arr) {
  66.         String elm = arr[r][c];
  67.         int count = 0;
  68.         for (int i = 0; i+r < arr.length && i+c<arr[i+r].length; i++) {
  69.             if(arr[i+r][i+c].equals(elm)){
  70.                    count++;
  71.             }
  72.             else {
  73.                 break;
  74.             }
  75.         }
  76.         return count;
  77.     }
  78.     private static int CheckLine(int r, String[][] arr) {
  79.         String elm = arr[r][0];
  80.         int count = 0;
  81.         for (int i = 1; i< arr.length; i++) {
  82.             if(arr[r][i].equals(elm)){
  83.                 count++;
  84.             }else {
  85.                 break;
  86.             }
  87.         }
  88.         return ++count;
  89.     }
  90.     private static int CheckColumn(int c, String[][] arr,int maxC) {
  91.         String elm = arr[0][c];
  92.         int count = 0;
  93.         for (int i = 1; i< maxC; i++) {
  94.             if(arr[i][c].equals(elm)){
  95.                 count++;
  96.             }else {
  97.                 break;
  98.             }
  99.         }
  100.         return ++count;
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement