构成的正方形数量
题目
输入 N 个互不相同的二维整数坐标, 求这 N 个坐标可以构成的正方形数量。(内积为零的两个向量垂直)
输入
第一行输入为 N
,N
代表坐标数量,N
为正整数。N
<= 100
之后的 K
行输入为坐标 x y
以空格分隔,x
, y
为整数, -10 <= x
, y <= 10
输出描述
输出可以构成的正方形数量
示例一
输入
3
1 3
2 4
3 1
输出
0
说明
3 个点不足以构成正方形
示例一
输入
4
0 0
1 2
3 1
2 -1
输出
1
说明
此 4 点可构成正方形
编码思路
求平面坐标系中4个点能否构成正方形的问题,这个问题可以通过求4个点之间的6个距离来判断它们能否构成正方形。如果有4条边相等且不为0,那么这4个点能构成正方形。为了保证正确性,需要先将这6个距离排序,然后判断最小的3个距离是否相等,最大的距离是否与最小的距离相等且不为0
核心知识点
简单题,查看代码即可。
使用说明
参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。
Python 代码实现
from typing import List
def is_square(a: