【每日一题】备战冲击蓝桥杯国赛——Python程序设计 | Day02 | 寻找2020 | 真题代码解析
每天刷一道题,话不多说,先刷近两年的题吧,从2020的开始,如果有一起的可以加入我们!!!
一起来刷题,冲击国赛!!!
2020年第十一届蓝桥杯赛题总览
2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!
寻找2020(题目)
(本题总分:5分)
—>【问题描述】
小蓝有一个数字矩阵,里面只包含数字。和2。小蓝很喜欢2020,他想找 到这个数字矩阵中有多少个2020。
小蓝只关注三种构成2020的方式:
・同一行里面连续四个字符从左到右构成2020。
・同一列里面连续四个字符从上到下构成2020。
・在一条从左上到右下的斜线上连续四个字符,从左上到右下构成2020。
例如,对于下面的矩阵:
2 2 0 0 0 0
0 0 0 0 0 0
0 0 2 2 0 2
0 0 0 0 0 0
0 0 0 0 2 2
0 0 2 0 2 0
一共有5个2020。其中1个是在同一行里的,1个是在同一列里的,3个 是斜线上的。
小蓝的矩阵比上面的矩阵要大,由于太大了,他只好将这个矩阵放在了一 个文件里面,在试题目录下有一个文件2020.txt,里面给出了小蓝的矩阵。
请帮助小蓝确定在他的矩阵中有多少个2020。
–
—>【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
解析
通过阅读题干,本题——难度一般:⭐⭐
由于是填空题,我们只需要得出一个结果即可。结果为一个整数。可以用暴力求解(简单易用,没毛病)。
首先,由于比赛时候会提供**.txt文件,所有我们需要对文件进行读取操作(已经放在代码前面,比赛时候记得用)。目前没有文件,我们就利用原题中的示例进行实现。暴力求解,直接对数组矩阵进行遍历求解(比较容易想到的方法)。对行**、列、对角线依次进行遍历查找一遍即可。
代码
Python代码实现:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2022/2/25 14:50
# @Author : 府学路18号车神
# @Email :yurz_control@163.com
# @File : Day02.py
import pandas as pd
"""
下面是打开文件的,由于原题中给了.txt的文件,所以需要我们操作打开读取文件,将文件内容读取到列表中
"""
# file = open("1.txt", "r") # 利用open()打开文件,并赋值给file
# ls = file.read().split('\n') # 利用 .split换行分割字符串
# m = len(ls) # 读取矩阵的行数
# n = len(ls[0]) # 读取矩阵的列数
"""
以下为无.txt文件版本,比赛的时候只需要执行上面的文件读取操作即可
"""
nums =[["2","2","0","0","0","0"],
["0","0","0","0","0","0"],
["0","0","2","2","0","2"],
["0","0","0","0","0","0"],
["0","0","0","0","2","2"],
["0","0","2","0","2","0"]] # 题干中的示例
res = 0 # 设置计数器
# 依次遍历,先从行开始遍历一遍
for x in range(len(nums)): # 行
temp = "".join(nums[x]) # 将列表的字符变为字符串
if "2020" in temp: # 如果“2020”在字符串内则计数+1
res += 1
# 对列进行操作
for i in range(len(nums) - 3): # 外层循环
for j in range(len(nums)): # 内层循环
if nums[i][j] == "2" and nums[i + 1][j] == "0" and nums[i + 2][j] == "2" and nums[i + 3][j] == "0":
res += 1
# 对角线操作
for i in range(len(nums)-3):
for j in range(len(nums)-3):
if nums[i][j]=="2" and nums[i+1][j+1]=="0" and nums[i+2][j+2]=="2" and nums[i+3][j+3]=="0":
res += 1
print("请问有多少个2020?:", res) # 得到共有5个2020
由此,我们可以快速的出结果为:5
- 点赞
- 收藏
- 关注作者
评论(0)