天天看點

[網易程式設計題] 塗棋盤

小易有一塊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 = ;
        for (int i = ; i < data[].length; i++) {

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

        }

        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 = ; i < n; i++) {
            String string = sc.nextLine();
            for (int j = ; j < n; j++) {
                if (string.charAt(j) == 'B') {
                    data[i][j] = ;
                } else {
                    data[i][j] = ;
                }
            }
        }
        System.out.println(fun(data));
    }
}
           

繼續閱讀