华为OD机试算法题-求三个矩形相交面积

本文介绍如何使用Python编程解决实际问题,通过实例演示如何计算三个给定坐标矩形的相交部分面积,若无交集则返回0。重点在于理解矩形边界计算和相交判断算法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在坐标中,给定三个矩形,求三个矩形相交面积,如果没有返回0。(代码最后写了个最后输出三个矩形相交形成的矩形)在这里插入图片描述

list01 = input().split()
list02 = input().split()
list03 = input().split()
dict01 = {}
dict02 = {}
dict03 = {}
s01 = []
s02 = []
s03 = []
s01_s02 = []
s02_s03 = []
zz = []
chang = []
kuan = []
dict01[int(list01[0])] = int(list01[1])
dict02[int(list02[0])] = int(list02[1])
dict03[int(list03[0])] = int(list03[1])
for a in range(int(list01[2]) + 1):
    for b in range(int(list01[3]) + 1):
        s01.append((int(list01[0]) + a, int(list01[1]) - b))
for c in range(int(list02[2]) + 1):
    for d in range(int(list02[3]) + 1):
        s02.append((int(list02[0]) + c, int(list02[1]) - d))
for e in range(int(list03[2]) + 1):
    for f in range(int(list03[3]) + 1):
        s03.append((int(list03[0]) + e, int(list03[1]) - f))
for item01 in s01:
    for item02 in s02:
        if item01 == item02:
            s01_s02.append(item01)
if len(s01_s02) == 0:
    print(0)
for item02 in s02:
    for item03 in s03:
        if item02 == item03:
            s02_s03.append(item02)
if len(s02_s03) == 0:
    print(0)
for zz01 in s01_s02:
    for zz02 in s02_s03:
        if zz01 == zz02:
            zz.append(zz01)
if len(zz) == 0:
    print(0)
for yi in zz:
    chang.append(yi[0])
    kuan.append(yi[1])
chang1 = sorted(chang)
kuan1 = sorted(kuan)
miandi = (chang1[len(chang1) - 1] - chang1[0]) * (kuan1[len(kuan1) - 1] - kuan1[0])
print(miandi)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值