X图形-----蓝桥杯(Python)

问题描述:

给定一个字母矩阵一个图形由中心点和由中心点向四个 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图形
LAAALA

ALQLQA

AALQAA

ALQLQA

LAAALA
给定一个字母矩阵,请求其中有多少个X图形

输入格式: 

输入第一行包含两个整数n,m,分别表示字母矩阵的行数和列数。
接下来n行,每行m个大写字母,为给定的矩阵

输出格式: 

输出一行,包含一个整数,表示答案  

样例输入:

5 6
LAAALA
ALQLQA
AALQAA
ALQLQA
LAAALA

 样例输出:

3

代码解析: 

import os
import sys

n,m = map(int,input().split())
data = list(list(input()) for i in range(n))

count = 0

for 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 += 1
      else:
        break  

print(count)

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值