华为OD机试真题精讲:构成正方形的数量(Python/Java/C++多语言实现)
一、题目描述(2025B卷高频100分题)
在一个二维平面上给定若干个整点坐标(x, y),请计算这些点中能够构成正方形的数量。正方形的边需与坐标轴平行(轴对齐正方形),且正方形的四个顶点必须全部是给定的点。
关键约束
- 点的数量
1 ≤ n ≤ 1000,坐标范围0 ≤ x, y ≤ 10^9; - 正方形的边长必须为正整数;
- 时间限制1秒,空间限制256MB;
- 两个点的坐标完全相同视为同一个点,需去重处理。
示例说明
| 输入(点列表) | 输出 | 说明 |
|---|---|---|
[(0,0), (0,1), (1,0), (1,1)] | 1 | 4个点构成1个边长为1的正方形 |
[(0,0), (0,1), (1,0), (1,1), (0,2), (1,2), (2,0), (2,1), (2,2)] | 5 |