Thursday, 24 August 2017

FIND IF A STRING CAN BE MADE A PALINDROME

#include <stdio.h>
int main(void)
{
    char a[100];
    int hash[26],count=0,flag=0;
    scanf("%s",a);
    int i,len;
    len=strlen(a);
    for(i=0;i<26;i++)
        hash[i]=0;
    for(i=0;i<len;i++)
        hash[a[i]%97]++;
    if(len%2==0)
    {
        for(i=0;i<len;i++)
        {
            if(hash[i]>0)
            {
                if(hash[i]%2!=0)
                {
                    flag=1;
                    break;
                }
            }
        }
        if(flag==0)
            printf("Yes");
        else
            printf("No");
    }
    else
    {
        for(i=0;i<len;i++)
        {
            if(hash[i]>0)
            {
                if(hash[i]%2!=0)
                    count++;
                if(hash[i]%2==0)
                    flag=1;
            }
        }
        if(count==1&&flag==1)
            printf("Yes");
        else
            printf("No");
    }
    return 0;
}

No comments:

Post a Comment