题目:
给定2D空间中四个点的坐标 p1, p2, p3 和 p4,如果这四个点构成一个正方形,则返回 true 。
点的坐标 pi 表示为 [xi, yi] 。 输入没有任何顺序 。
一个 有效的正方形 有四条等边和四个等角(90度角)。
示例 1:
输入: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]
输出: true
示例 2:
输入:p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,12]
输出:false
示例 3:
输入:p1 = [1,0], p2 = [-1,0], p3 = [0,1], p4 = [0,-1]
输出:true
解析:
判断是不是正方形只需根据四条边是否相等,两条对角线是否相等即可
具体代码
/** * @param {number[]} p1 * @param {number[]} p2 * @param {number[]} p3 * @param {number[]} p4 * @return {boolean} */varvalidSquare=function(p1,p2,p3,p4){letset=newSet()functiongetLength(p1,p2){letx=p1[0]-p2[0]lety=p1[1]-p2[1]letres=x*x+y*y set.add(res)}getLength(p1,p2)getLength(p1,p3)getLength(p1,p4)getLength(p2,p3)getLength(p2,p4)getLength(p3,p4)letarr=Array.from(set)if(arr.length===2&&arr[0]!==0&&arr[1]!==0){returntrue}else{returnfalse}};