- 分享
对称性检验(求解)
- 2024-11-24 13:22:05 @
Description
给出一个数列,判断这个数列是否左右对称。
例如:给出四个数2 5 5 2,则这个数列对称;
给出五个数 1 2 3 1 2,则这个数列不对称。
Format
第一行:一个正整数 n(n<500)n(n<500),表示数据个数; 第二行: n 个不超过1000的正整数,依次表示数列中的每个数
Output
如果对称,输出Yes;否则输出No。
输入样例1
5
4 5 6 5 4
输出样例1
Yes
输入样例2
4
2 2 3 3
输出样例1
No
0Wrong Answer
using namespace std;
int c[1010],n=0;
int main(){
int s;
cin>>s;
int y=0;
for(int i=1;i<=s;i++)cin>>c[i];
for(int i=1;i<=s;i++){
if(i%2==1&&i>=s-i)break;
if(c[i]==c[s-y])n++;
y++;
}
if(s==(n-1)*2+1)cout<<"Yes";
else cout<<"No";
return 0;
}
1 条评论
-
王梓任 @ 2024-11-24 13:33:56已修改
#include<iostream> using namespace std; int c[1010],n=0; int main(){ int s; cin>>s; int y=0; for(int i=1;i<=s;i++)cin>>c[i]; for(int i=1;i<=s;i++){ if(i%2==1&&i>=s-i)break; if(c[i]==c[s-y])n++; y++; } if(s==(n-1)*2+1)cout<<"Yes"; else cout<<"No"; return 0; }
- 1