Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Abstraction;
- import java.util.Scanner;
- public class SequenceInMatrix {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int r = Integer.parseInt(scanner.next());
- int c = Integer.parseInt(scanner.next());
- String[][] arr = new String[r][c];
- for (int i = 0; i < r; i++) {
- for (int j = 0; j < c; j++) {
- arr[i][j] = scanner.next();
- }
- }
- int maxSequence = 0;
- int colmnSeq = -1;
- int rowSeq = -1;
- //Diagonals
- for (int i = 0; i < c; i++) {
- int crrSeq = CheckDiagonal(0,i,arr);
- if(crrSeq>=maxSequence){
- maxSequence=crrSeq;
- colmnSeq = i;
- rowSeq = 0;
- }
- }
- for (int i = 1; i < r; i++) {
- int crrSeq = CheckDiagonal(i,0,arr);
- if(crrSeq>=maxSequence){
- maxSequence=crrSeq;
- colmnSeq = 0;
- rowSeq = i;
- }
- }
- //Line
- for (int i = 0; i < r ;i++) {
- int crrSeq = CheckLine(i,arr);
- if(crrSeq>=maxSequence){
- maxSequence=crrSeq;
- colmnSeq = 0;
- rowSeq = i;
- }
- }
- //Columns
- for (int i = 0; i < c ;i++) {
- int crrSeq = CheckColumn(i,arr,c);
- if(crrSeq>=maxSequence){
- maxSequence=crrSeq;
- colmnSeq = i;
- rowSeq = 0;
- }
- }
- String repeating = arr[rowSeq][colmnSeq]+", ";
- String output = new String(new char[maxSequence-1]).replace("\0", repeating) + arr[rowSeq][colmnSeq];
- System.out.println(output);
- }
- private static int CheckDiagonal(int r, int c, String[][] arr) {
- String elm = arr[r][c];
- int count = 0;
- for (int i = 0; i+r < arr.length && i+c<arr[i+r].length; i++) {
- if(arr[i+r][i+c].equals(elm)){
- count++;
- }
- else {
- break;
- }
- }
- return count;
- }
- private static int CheckLine(int r, String[][] arr) {
- String elm = arr[r][0];
- int count = 0;
- for (int i = 1; i< arr.length; i++) {
- if(arr[r][i].equals(elm)){
- count++;
- }else {
- break;
- }
- }
- return ++count;
- }
- private static int CheckColumn(int c, String[][] arr,int maxC) {
- String elm = arr[0][c];
- int count = 0;
- for (int i = 1; i< maxC; i++) {
- if(arr[i][c].equals(elm)){
- count++;
- }else {
- break;
- }
- }
- return ++count;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement