Anti Palindrome | Starters 90 Solution Codechef


 Starters 90 Solution Codechef

Problem

Definitions:

A string  is called semi-palindrome if you can rearrange the characters of  to make it into a palindrome.
For eg. if =, it isn't a palindrome as of now, but it can be rearranged to form , which is a palindrome. Thus, = is a semi-palindrome.

An anti-palindrome is the opposite of a semi-palindrome. In particular, a string  is called an anti-palindrome if it is not possible to rearrange the characters of  to make it into a palindrome.
For eg. if =, there is no rearrangement of this string which makes it into a palindrome. Hence, = is an anti-palindrome.

solution:

int n;
cin>>n;

string s;
cin>>s;

map<char,int>m;

for(auto c:s)m[c]++;

if(n%2){
    bool odd = false;
    for(auto i:m){
        if(i.second%2 && !odd)odd=true;
        else if(i.second%2 && odd){
            cout<<0<<endl;
            return;
        }
    }
    m.size() == 1 ?
    cout<<2<<endl : cout<<1<<endl;
}
else{
    for(auto i:m){
        if(i.second%2){
            cout<<0<<endl;
            return;
        }
    }
    cout<<1<<endl;
}

 

AP Free Sequences

int n;
cin>>n;

vi v(n);

for (int i = 0; i < n; i++)
{
    cin>>v[i];
}


for (int i = 0; i < n; i++)
{
    for (int j = i+1; j < n; j++)
    {
        for (int k = i - 1; k >= 0; k--)
        {
            if(v[j]-v[i]==v[i]-v[k]){
                cout<<"No\n";
                return;
            }
        }
       
    }
   
   
}


cout<<"Yes\n";


Printing Binary Array


int n;
cin>>n;

for (int i = 0; i < n; i++)
{
    int x;
    cin>>x;
    x==1 ? cout<<0<<" " : cout<<1<<" ";
}
cout<<endl;

a


Post a Comment

0 Comments