593. 有效的正方形

代码实现(自解)
class Solution {
private:
const double epsilon = 0.00001;
public:
bool validSquare(vector<int>& p1, vector<int>& p2, vector<int>& p3, vector<int>& p4) {
if (p1 == p2 || p2 == p3 || p3 == p4) return false;
double p1p2 = sqrt(pow(p1[0] - p2[0], 2) + pow(p1[1] - p2[1], 2));
double p1p3 = sqrt(pow(p1[0] - p3[0], 2) + pow(p1[1] - p3[1], 2));
double p1p4 = sqrt(pow(p1[0] - p4[0], 2) + pow(p1[1] - p4[1], 2));
double p2p3 = sqrt(pow(p2[0] - p3[0], 2) + pow(p2[1] - p3[1], 2));
double p2p4 = sqrt(pow(p2[0] - p4[0], 2) + pow(p2[1] - p4[1], 2));
double p3p4 = sqrt(pow(p3[0] - p4[0], 2) + pow(p3[1] - p4[1], 2));
if (p1p3 == p1p4 && p2p3 == p2p4 && p1p3 == p2p3) {
return abs(p1p3 * sqrt(2) - p1p2) <= epsilon;
}
if (p1p2 == p1p4 && p2p3 == p3p4 && p1p2 == p2p3) {
return abs(p1p2 * sqrt(2) - p1p3) <= epsilon;
}
if (p1p2 == p1p3 && p2p4 == p3p4 && p1p2 == p2p4) {
return abs(p1p2 * sqrt(2) - p1p4) <= epsilon;
}
return false;
}
};