# HackerEarth Xsquare And Palindromes Insertion problem solution

In this HackerEarth Xsquare And Palindromes Insertion problem solution Xsquare likes strings a lot but much more, he likes palindromic strings. Today, he has a string S consisting of lower case English letters. Xsquare wants to convert his string S to a palindromic string. For the above purpose to be served, he can insert as many characters ( possibly zero ) as he wants in his string S such that characters in the new string S can be shuffled to make it a palindrome.

Xsquare is in hurry. Therefore, he wants to accomplish this task with the minimum possible number of insertions in his original string S.

## HackerEarth Xsquare And Palindromes Insertion problem solution.

`#include <bits/stdc++.h>using namespace std ;#define LL long long int#define ft first#define sd second#define PII pair<int,int>#define MAXN 100005#define MAXM 10000001#define mp make_pair#define f_in(st) freopen(st,"r",stdin)#define f_out(st) freopen(st,"w",stdout)#define sc(x) scanf("%d",&x)#define scll(x) scanf("%lld",&x)#define pr(x) printf("%d\n",x)#define pb push_back#define MOD 1000000007#define MAX 1000010#define ull long long#define prime 37#define pb push_back#define ASST(x,y,z) assert(x >= y && x <= z)int t , n;string s ;int main(){    sc(t) ;    ASST(t,1,100) ;    while(t --){        cin >> s ;        n = s.length() ;        ASST(n,1,1000) ;        int M={0} , c = 0;        for(int i=0;i<n;i++) ASST(s[i],'a','z') ;        for(int i=0;i<n;i++) M[s[i]-'a'] ++ ;        for(int i=0;i<26;i++) if(M[i]&1) c ++ ;        pr(max(0,c-1)) ;    }    return 0 ;}`

### Second solution

`#include <bits/stdc++.h>using namespace std;int cnt;int main(){    int t,n,ans;    string s;    cin >> t;    while ( t-- ) {        cin >> s;        ans = 0;        memset(cnt, 0, sizeof(cnt));        int n = (int)s.size();        for ( int i = 0; i < n; i++ ) cnt[s[i]-'a']++;        for ( int i = 0; i < 26; i++ ) {            ans += (cnt[i]%2);        }        ans--;        ans = max(ans, 0);        cout << ans << endl;    }    return 0;}`