💖作者:车神哥


今天最后一天刷题,加油!

每天刷一道题,话不多说,先刷近两年的题吧,现在是2021年的真题了

一起来刷题,冲击国赛!!!


2021年第十二届蓝桥杯赛题总览

2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!

babypython国赛 python国赛题目_Python

括号序列 (题目)

(本题总分:20分)

官方练习系统:https://www.lanqiao.cn/problems/1462/learning/


—>【问题描述】

babypython国赛 python国赛题目_职场和发展_02


解析


通过阅读题干,本题——难度中上:⭐⭐⭐⭐

考察类型:枚举

考察知识点:BFS


分析:

这道题是考BFS宽度优先搜索算法。

一层层的遍历,判断直到存在有效括号为止。

下面直接开干!!!


代码

Python代码实现:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/3/13 14:36
# @Author  : 府学路18号车神
# @Email   :yurz_control@163.com
# @File    : demo.py

# 括号序列
T = int(input())
for _ in range(T):
    a = list(map(int, input().split()))
    dp = []
    sum = 0
    ma = 0
    n = len(a)
    for i in range(1, n):
        dp.append(a[i])
        sum ^= a[i]
        ma = max(ma, a[i])

    if sum == 0:  # 每个不同位上的0和1个数分别为偶数
        print(0)
        continue

    x = 1
    while x < ma:
        x <<= 1

    while x > 0:
        one = 0
        zero = 0
        for i in dp:
            if i & x == 0:  # 关于x的第某位是否为0
                zero += 1
            else:
                one += 1
        if one % 2 == 1:  # 关于x的第某位1的个数为奇数
            if zero % 2 == 1 and one > 1:
                print(-1)
            else:
                print(1)
            break
        x >>= 1  # 关于x的第某位1的个数为偶数,则退位向下再次判断

babypython国赛 python国赛题目_蓝桥杯_03

由此,我们可以快速得出结果,验证完毕!最后一天,完结撒花~ 加油!!!

过两天开始复习复习一些基础知识吧!~

疫情反复,做好防护,大家一定要注意安全呀!~