题面:
思路:
1.首先考虑正方形的情况,边的个数有4个相等为正方形
2.在考虑矩形的情况,边的个数有两对相等为矩形
3.都不满足输出No
4.为了简化代码用一个unordered_map计数
AC_Code:C++
#include<bits/stdc++.h>
using namespace std;
unordered_map<int,int>cnt;
int main( )
{
for(int i=0;i<5;i++){
int t; cin>>t;
cnt[t]++;
}
int cnt2=0; //记录边长出现2次或者两次以上的次数
for(auto &[x,y]:cnt){
if(y>=4){ //边长出现次数大于4为正方形的情况
puts("Square");
return 0;
}
if(y>=2) cnt2++;
}
if(cnt2>=2) puts("Rectangle"); //有两个边长相等的情况,矩形
else puts("No"); //否则No
return 0;
}