华为OD机试真题-围棋的气-2023年OD统一考试(C卷)---python代码

题目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码:

"""
# 输入:2的倍数
第一个为行号 0-18
第二个为列号 0-18

第一行为黑色
第二行为白色

思路:先求黑色,进行去重+棋子的位置,再求白色
逐个棋子求坐标。
"""
def get_item(a):
    temp = list()
    for item in a:
        row = item[0]
        column = item[1]
        if row - 1 >= 0:
            temp.append([row - 1, column])
        if column - 1 >= 0:
            temp.append([row, column - 1])
        if row + 1 <= 18:
            temp.append([row + 1, column])
        if column + 1 <= 18:
            temp.append([row, column + 1])
    return temp


# 输入不固定,2的整数倍
b = list(map(int, input().split()))
w = list(map(int, input().split()))
black = [b[i:i+2] for i in range(0, len(b), 2)]
white = [w[i:i+2] for i in range(0, len(w), 2)]
# black = [[0,5], [8,9], [9,10]]
# white = [[5,0], [9,9], [9,8]]

temp_black = get_item(black)
temp_white = get_item(white)
# 将子列表转换为元组并用set去重,然后再转换回列表
black_set_temp = set(tuple(sublist) for sublist in temp_black)
white_set = set(tuple(sublist) for sublist in white)
black_set = set(tuple(sublist) for sublist in black)
# 求当前黑色棋子红周围的气与白色求交集,求当前黑色的周围的气与本身黑色的交集,这两个交集求并集,用当前黑色棋子周围的气求并集的差集
black_res = black_set_temp - ((black_set_temp & white_set) | (black_set_temp & black_set))

white_set_temp = set(tuple(sublist) for sublist in temp_white)

white_res = white_set_temp - ((white_set_temp & black_set) | (white_set_temp & white_set))
# 本身去重
print(len(black_res), black_res)
print(len(white_res), white_res)

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 11:18:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 11:18:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 11:18:02       82 阅读
  4. Python语言-面向对象

    2024-02-22 11:18:02       91 阅读

热门阅读

  1. C语言之删除中间的*

    2024-02-22 11:18:02       56 阅读
  2. 「Python系列」Python输入输出

    2024-02-22 11:18:02       59 阅读
  3. 喝点小酒-胡诌“编程语言学习”

    2024-02-22 11:18:02       46 阅读
  4. MySQL物理拷贝一张Innodb表的方法

    2024-02-22 11:18:02       42 阅读
  5. 记录 | 非root用户使用docker的方法

    2024-02-22 11:18:02       46 阅读
  6. 下拉框组件的封装(element ui )

    2024-02-22 11:18:02       49 阅读
  7. 通过傅里叶变换进行音频变声变调

    2024-02-22 11:18:02       50 阅读
  8. 关于Linux搭建DedeCMS说明

    2024-02-22 11:18:02       59 阅读
  9. 【二叉树】遍历及构造

    2024-02-22 11:18:02       46 阅读