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

————————————————————————————————————

#include<iostream>
using namespace std;
long long cnt[1010],n=0;
int main() {
	long long s;
	cin>>s;
	int y=0;
	for(int i=1;i<=s;i++){
		cin>>cnt[i];
	}
	for(int i=1;i<=s;i++){
		if(i%2==1&&i>=s-i){
			break;
		}
		if(cnt[i]==cnt[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;
    long long cnt[1010],n=0;
    int main() {
    	long long s;
    	cin>>s;
    	int y=0;
    	for(int i=1;i<=s;i++){
    		cin>>cnt[i];
    	}
    	for(int i=1;i<=s;i++){
    		if(i%2==1&&i>=s-i){
    			break;
    		}
    		if(cnt[i]==cnt[s-y]){
    			n++;
    		}
    		y++;
    	}
    	if(s==(n-1)*2+1)cout<<"Yes";
    	else		    cout<<"No";
    	return 0; 
    }
    
    
    • 1