问题描述
给定一个字母矩阵。一个 X 图形由中心点和由中心点向四个 45度斜线方向引出的直线段组成,四条线段的长度相同,而且四条线段上的字母和中心点的字母相同。
一个 X 图形可以使用三个整数 r,c,L 来描述,其中 r,c 表示中心点位于第 r 行第 c 列,正整数 工 表示引出的直线段的长度。对于 1到工 之间的每个整数 ,X 图形满足: 第r -i 行第c-i列与第r 行第 c列相同,第r -i 行第 c+i列与第r行第 c列相同,第r + 行第 c-i 列与第r 行第 c列相同,第r +i行第 c+i列与第r 行第 c列相同。
例如,对于下面的字母矩阵中,所有的字母 工 组成一个 X图形中间的 5个工 也组成一个 X 图形。所有字母 Q 组成了一个 X图形。
LAAALA
ALQLQA
AALQAA
ALQLQA
LAAALA
给定一个字母矩阵,请求其中有多少个 X 图形。
原题链接:用户登录
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n,m;
n = scanner.nextInt();
m = scanner.nextInt();
char[][] JuZhen = new char[n][m];
int count = 0;
for (int i = 0; i < n; i++) {
String YuanSu = scanner.next();
for (int j = 0; j < m; j++) {
JuZhen[i][j] = YuanSu.charAt(j);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
for (int k = 1; i-k >= 0 && i+k < n && j-k >= 0 && j+k < m; k++) {
if (JuZhen[i][j] == JuZhen[i - k][j - k]
&& JuZhen[i][j] == JuZhen[i - k][j + k]
&& JuZhen[i][j] == JuZhen[i + k][j - k]
&& JuZhen[i][j] == JuZhen[i + k][j + k]) {
count++;
} else {
break;
}
}
}
}
scanner.close();
System.out.println(count);
}
}
总结:头晕,浮躁,唉,难受,感觉自己太浮躁了,学习效率好低好低,呜呜呜,而且感觉精神有些萎靡,应该是内耗。
不过究其根本,貌似是因为今天发生的一件事情,让我心情瞬间低落了下去。
今天吃完席回家,想着拉人开把游戏玩玩,然后给我打自闭了,真服了, 打不了,根本打不了,气得我直接自己主动去掉分,掉段位,感觉游戏真没意思啊。
主要还是因为和人家高段位玩家,很大佬的人一起组队打的游戏,匹配的敌人队友,都是段位分数上高我大概有两千多分的。
笑死,根本打不了,这根本不是我这段位该接触到的。
第一次打游戏打的自闭......
唉,还是好好学习吧,但是因为这件事情之后,学不下去,好浮躁啊呜呜呜。
还是得调整呜呜呜。