[網易編程題] 塗棋盤

小易有一塊n*n的棋盤,棋盤的每一個格子都爲黑色或者白色,小易現在要用他喜歡的紅色去塗畫棋盤。小易會找出棋盤中某一列中擁有相同顏色的最大的區域去塗畫,幫助小易算算他會塗畫多少個棋格。
輸入描述:
輸入數據包括n+1行:

第一行爲一個整數n(1 ≤ n ≤ 50),即棋盤的大小

接下來的n行每行一個字符串表示第i行棋盤的顏色,’W’表示白色,’B’表示黑色

輸出描述:
輸出小易會塗畫的區域大小

輸入例子1:
3
BWW
BBB
BWB

輸出例子1:
3

解題思路
遍歷棋盤的每一列,尋找最長連續串。


import java.util.Scanner;

public class Main {

    private static int fun(int[][] data) {

        int max = 0;
        for (int i = 0; i < data[0].length; i++) {

            int num = data[0][i];
            int count = 1;
            for (int j = 1; j < data.length; j++) {
                if (num == data[j][i]) {
                    count++;
                    if (count > max)
                        max = count;
                } else {
                    num = data[j][i];
                    count = 1;
                }
            }

        }

        return max;

    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        sc.nextLine();

        int[][] data = new int[n][n];
        for (int i = 0; i < n; i++) {
            String string = sc.nextLine();
            for (int j = 0; j < n; j++) {
                if (string.charAt(j) == 'B') {
                    data[i][j] = 1;
                } else {
                    data[i][j] = 0;
                }
            }
        }
        System.out.println(fun(data));
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章