分析
暴力遍历就好了,反正数量小
py 代码
n,m = map(int,input().strip().split())
lis = []
ans = dict()
for i in range(n):lis.append(input().strip())
def find(a,b):
if b+2 < m:
if lis[a][b+1] == lis[a][b+2] and lis[a][b+1] != lis[a][b]and lis[a][b+1] != 'O' and lis[a][b]!='M':
ll = lis[a][b] + lis[a][b+1] + lis[a][b+2]
if ll not in ans.keys():ans[ll] = 1
else:ans[ll]+=1
if a-2>= 0:
if lis[a-1][b+1] == lis[a-2][b+2] and lis[a][b] != lis[a-1][b+1]and lis[a-1][b+1] != 'O' and lis[a][b]!='M':
ll = lis[a][b] + lis[a-1][b+1] + lis[a-2][b+2]
if ll not in ans.keys():ans[ll] = 1
else:ans[ll]+=1
if a+2 < n:
if lis[a+1][b+1] == lis[a+2][b+2] and lis[a][b] != lis[a+1][b+1]and lis[a+1][b+1] != 'O' and lis[a][b]!='M':
ll = lis[a][b] + lis[a+1][b+1] + lis[a+2][b+2]
if ll not in ans.keys():ans[ll] = 1
else:ans[ll]+=1
if b-2 >= 0:
if lis[a][b-1] == lis[a][b-2] and lis[a][b-1] != lis[a][b]and lis[a][b-1] != 'O' and lis[a][b]!='M':
ll = lis[a][b] + lis[a][b-1] + lis[a][b-2]
if ll not in ans.keys():ans[ll] = 1
else:ans[ll]+=1
if a-2>= 0:
if lis[a-1][b-1] == lis[a-2][b-2] and lis[a][b] != lis[a-1][b-1]and lis[a-1][b-1] != 'O' and lis[a][b]!='M':
ll = lis[a][b] + lis[a-1][b-1] + lis[a-2][b-2]
if ll not in ans.keys():ans[ll] = 1
else:ans[ll]+=1
if a+2 < n:
if lis[a+1][b-1] == lis[a+2][b-2] and lis[a][b] != lis[a+1][b-1] and lis[a+1][b-1] != 'O' and lis[a][b]!='M':
ll = lis[a][b] + lis[a+1][b-1] + lis[a+2][b-2]
if ll not in ans.keys():ans[ll] = 1
else:ans[ll]+=1
if a - 2 >= 0:
if lis[a-1][b] == lis[a-2][b] and lis[a][b] != lis[a-1][b]and lis[a-1][b] != 'O' and lis[a][b]!='M':
ll = lis[a][b] + lis[a-1][b] + lis[a-2][b]
if ll not in ans.keys():ans[ll] = 1
else:ans[ll]+=1
if a + 2 < n:
if lis[a+1][b] == lis[a+2][b] and lis[a][b] != lis[a+1][b] and lis[a+1][b] != 'O' and lis[a][b]!='M':
ll = lis[a][b] + lis[a+1][b] + lis[a+2][b]
if ll not in ans.keys():ans[ll] = 1
else:ans[ll]+=1
for i in range(n):
for j in range(m):
find(i,j)
if len(ans.values()):
print(max(ans.values()))
else:print(0)