欢迎提问
package zhenti;
import java.util.Scanner;
public class biannuang {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
char[][] yuanshi = new char[n + 2][ n + 2];
for (int i = 1; i <= n; i++) {
String tempString = scanner.next();
for (int j = 1; j <= n; j++) {
yuanshi[i][j] = tempString.charAt(j - 1);
}
}
scanner.close();
//char[][] zhihou = gaibian(yuanshi, n);
int kaishishuliang = daoshuliang(yuanshi, n);
//int zuihoushuliang = daoshuliang(zhihou, n);
int baoliushuliang = baoliudaoshuliang(yuanshi, n);
//System.out.println(kaishishuliang - zuihoushuliang);
System.out.println(kaishishuliang - baoliushuliang);
}
public static char[][] gaibian(char[][] yuanshi, int n) {
char[][] zhihou = new char[n + 2][n + 2];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
zhihou[i][j] = yuanshi[i][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (yuanshi[i][j] == '.') {
zhihou[i - 1][j] = '.';
zhihou[i + 1][j] = '.';
zhihou[i][j - 1] = '.';
zhihou[i][j + 1] = '.';
}
}
}
return zhihou;
}
public static int baoliudaoshuliang(char[][] dao, int n) {
boolean[][] bools = new boolean[n + 2][n + 2];
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (dao[i][j] == '#' && bools[i][j] == false) {
if (dao[i - 1][j] == '#' && dao[i + 1][j] == '#'
&& dao[i][j - 1] == '#' && dao[i][j + 1] == '#' ) {
sum++;
quandao(dao, i, j, bools);
}
}
}
}
return sum;
}
public static int daoshuliang(char[][] dao, int n) {
boolean[][] bools = new boolean[n + 2][n + 2];
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (dao[i][j] == '#' && bools[i][j] == false) {
sum++;
quandao(dao, i, j, bools);
}
}
}
return sum;
}
public static void quandao(char[][] dao, int i, int j, boolean[][] bools) {
if (dao[i - 1][j] == '#' && bools[i - 1][j] == false) {
bools[i - 1][j] = true;
quandao(dao, i - 1, j, bools);
}
if (dao[i + 1][j] == '#' && bools[i + 1][j] == false) {
bools[i + 1][j] = true;
quandao(dao, i + 1, j, bools);
}
if (dao[i][j - 1] == '#' && bools[i][j - 1] == false) {
bools[i][j - 1] = true;
quandao(dao, i, j - 1, bools);
}
if (dao[i][j + 1] == '#' && bools[i][j + 1] == false) {
bools[i][j + 1] = true;
quandao(dao, i, j + 1, bools);
}
}
}