class Solution {
public:

    string rearrangestring(string str) {
        int arr[26] = {0};
        string s;
        int n = str.size();
        int maxcount = 0;
        char maxchar = 0;
        for(int i=0;i<n;i++)
        {
            int ch = str[i] - 'a';
            
            if(++arr[ch] > maxcount)
            {
                maxcount = arr[ch];
                maxchar = str[i];
            }
        }
        if(maxcount>(n+1)/2) return s;
        char c[100010];
        int x = 0;
        while(maxcount--)
        {
            c[x] = maxchar;
            x += 2;
        }
        for(int j=0;j<26;j++)
        {
            if(arr[j] && j +'a'!= maxchar)
            {
                while(arr[j]--)
                {
                    if(x>=n) x = 1;
                    c[x] = j +'a';
                    x += 2;
                    
                }
            }
        }

        for(int a=0;a<n;a++) 
        {
            s += c[a];
        }
       
        return s;

    }
};