https://leetcode.com/problems/valid-square/
Given the coordinates of four points in 2D space, return whether the four points could construct a square.
The coordinate (x,y) of a point is represented by an integer array with two integers.
Example:
Input: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1] Output: TrueNote:
- All the input integers are in the range [-10000, 10000].
- A valid square has four equal sides with positive length and four equal angles (90-degree angles).
- Input points have no order.
class Solution {
public:
bool validSquare(vector<int>& p1, vector<int>& p2, vector<int>& p3, vector<int>& p4) {
unordered_set<int> S({dist(p1, p2), dist(p1, p3), dist(p1, p4), dist(p2, p3), dist(p2, p4), dist(p3, p4)});
return S.find(0) == S.end() && S.size() == 2;
}
int dist(vector<int> &p1, vector<int> &p2){
return (p1[0]-p2[0])*(p1[0]-p2[0]) + (p1[1]-p2[1])*(p1[1]-p2[1]);
}
};

博客给出LeetCode题目链接,要求根据二维空间中四个点的坐标,判断这四点能否构成正方形。点的坐标用含两个整数的数组表示,输入整数范围在[-10000, 10000],有效正方形需四边等长且四角为90度,输入点无顺序要求。

被折叠的 条评论
为什么被折叠?



