首页 > 其他 > 详细

对称序列判断

时间:2018-05-08 20:35:34      阅读:157      评论:0      收藏:0      [点我收藏+]

题目描述

给定一个数组,判断其中的数据序列是否左右对称:偶数个数时,左右两半部分正好逆序;奇数时,除中间位置数外,左右逆序

输入格式

第一行N表示一共有N个测试用例,也即接下来的输入数据共有N行。

接下来的每一行表示一个输入数组,第一个数字n表示该数组的元素个数,后面紧跟着n个数,中间都以空格隔开

输出格式

是逆序输出YES,否则输出NO(注意都是大写,小写判错)

样例输入

 

3
5 1 2 3 2 1
4 1 1 1 2
6 2 1 2 2 1 2

样例输出

 

YES
NO
YES
#include <iostream>
using namespace std;
int f(int a[], int m, int i,int j);
int main()
{
    int n;
    cin >> n;
    while (n--)
    {
        int m;
        cin >> m;
        int *a = new int[m];
        for (int i = 0;i < m; i++)
            cin >> a[i];
        if (f(a,m,0,m-1)) cout <<"YES" << endl;
        else  cout <<"NO" << endl;
        delete[] a;
    }
    return 0;
}
int f(int a[], int m, int i,int j)
{
    if (m == 1 || m == 0)
        return 1;
    if (a[i] == a[j])
    {
        m = m - 2;
        f(a, m, ++i,--j);
    }
    else 
        return 0;
    
}

 

对称序列判断

原文:https://www.cnblogs.com/Zhz0306/p/9010648.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!