问题描述:
给定一个字母矩阵一个图形由中心点和由中心点向四个 45 度斜线方向引出的直线段组成,四条线段的长度相同,而且四条线段上的字母和中心点的字母相同。
个X图形可以使用三个整数r,c,来描述,其中rc 表示中心点位于第r行第c列,正整数表示引出的直线段的长度。对于1到之间的每个整数i,X图形满足:第r-行第c-列与第r行第c列相同,第r-行第c十列与第r行第c列相同,第r十行第c -列与第”行第c列相同,第r+行第 c+2 列与第 行第 c列相同。
例如,对于下面的字母矩阵中,所有的字母组成一个X图形,中间的5个L也组成一个X图形。所有字母 Q组成了一个X图形
LAAALAALQLQA
AALQAA
ALQLQA
LAAALA
给定一个字母矩阵,请求其中有多少个X图形
输入格式:
输入第一行包含两个整数n,m,分别表示字母矩阵的行数和列数。
接下来n行,每行m个大写字母,为给定的矩阵
输出格式:
输出一行,包含一个整数,表示答案
样例输入:
5 6
LAAALA
ALQLQA
AALQAA
ALQLQA
LAAALA
样例输出:
3
代码解析:
import os
import sysn,m = map(int,input().split())
data = list(list(input()) for i in range(n))count = 0for i in range(1,n-1):for j in range(1,m-1):L = min([i,n-i-1,j,m-j-1])for l in range(1,L+1):if data[i-l][j-l] == data[i+l][j-l] == data[i-l][j+l] == data[i+l][j+l] == data[i][j]:count += 1else:break print(count)