第十一届蓝桥杯试题B:寻找2020

题目

题解:暴力

  • 需要知道文件的操作;发现2020的行列标变化
li = []  # 创建一个空列表用于存储读取的文本内容
with open(r'2020.txt', 'r') as fp:  # 打开名为 '2020.txt' 的文件,并使用文件句柄 fp
    for line in fp.readlines():  # 逐行读取文件内容
        li.append(line.strip())  # 去除行两端的空白字符,并将每行内容添加到列表 li 中
m = len(li)  # 获取列表 li 的行数,即文本的总行数
n = len(li[0])  # 获取列表 li 的第一行的长度,即文本的列数
num = 0  # 初始化计数器 num 为 0,用于记录满足条件的次数
# 检查每一行中是否存在 '2020' 子串
for i in range(m):
    for j in range(n-3):
        if li[i][j] == '2' and li[i][j+1] == '0' and li[i][j+2] == '2' and li[i][j+3] == '0':
            num += 1  # 如果存在 '2020' 子串,则计数器 num 加 1
# 检查每一列中是否存在 '2020' 子串
for a in range(m-3):
    for b in range(n):
        if li[a][b] == '2' and li[a+1][b] == '0' and li[a+2][b] == '2' and li[a+3][b] == '0':
            num += 1  # 如果存在 '2020' 子串,则计数器 num 加 1
# 检查每个斜对角线方向上是否存在 '2020' 子串
for g in range(m-3):
    for k in range(n-3):
        if li[g][k] == '2' and li[g+1][k+1] == '0' and li[g+2][k+2] == '2' and li[g+3][k+3] == '0':
            num += 1  # 如果存在 '2020' 子串,则计数器 num 加 1
print(num)  # 打印满足条件的次数
posted @ 2024-03-05 13:30  Frommoon  阅读(9)  评论(0编辑  收藏  举报