最好的算法找不到。将序列转换为回文序列所需的步骤

时间:2014-12-06 05:44:06

标签: palindrome sequences

[我的StackoverFlow的第一个问题,所以,HI!]

我不确定这个地方的规则是什么,但我有一个简单的问题如下......

  

序列23,45,23和23,45,56,23,23,56,45,23是   回文的例子。序列23,45,56不是回文。   序列23,32也不是回文序列。长度为1的序列   永远是一个回文。给定的整数序列可以被分解   分成几部分,使它们都是回文。考虑一下   序列34,45,34,56,34。这可以分为3个回文   序列有34,45,34构成第一个,56个构成   第二和34构成第三。它也可以在5中打破   回文序列每个包含一个数字。

     

我们要确定给定的最小数量K.   序列可以分解为K回文序列。

1 个答案:

答案 0 :(得分:0)

#include<iostream>
using namespace std;

int main() {

    int n;
    cin>>n;
    int num[n];
    for(int i=0;i<n;i++)
        cin>>num[i];
    int c[n];
    int co=0;
    for(int i=0;i<n;i++){
        if(num[i]!=-1){
        for(int j=i+1;j<n;++j){
            if(num[i]==num[j]){
                num[i]=num[j]=-1;
                c[co]=j;
                co++;
                break;
            }
        }
        }
    }
    if(n-co*2==0){
        cout<<1;
    }
    else{
        cout<<n-co*2;
    }

}