HackerEarth Sorted String problem solution YASH PAL, 31 July 2024 In this HackerEarth Sorted String problem solution Little Ashish got a lot of strings as his birthday gift. He does not mind getting so many strings for free; in fact, he loves them. But, on noticing all the strings he received as a gift, Little Ashish, who’s also a snob and a bit OCD kind of a guy, realizes that he does not like the way in which the strings are arranged. He likes his strings sorted, in a different kind of a way. He wants his strings to be sorted based on the count of characters present in the string. For instance, if the string is: “aaabbc”, then the desired string would be: cbbaaa. In case where the count of two characters is same, then the lexicographically smaller one will be printed first. For instance: “aabbcc” then, the output will be: “aabbcc”. HackerEarth Sorted String problem solution. #include <bits/stdc++.h>using namespace std;#define f_in(st) freopen(st,"r",stdin);#define f_out(st) freopen(st,"w",stdout);int main(){ //f_in("in09.txt"); //f_out("out09.txt"); int test; cin>>test; while(test--) { string s; cin>>s; vector<pair<int, int> > V(26); for(int i=0;i<26;i++){ V[i].first=0; V[i].second=i; } for(int i=0;i<s.size();i++) V[s[i]-'a'].first++; sort(V.begin(),V.end()); for(int i=0;i<26;i++) { int count=V[i].first; char ch=V[i].second+'a'; for(int j=0;j<count;j++) cout<<ch; } cout<<endl; } return 0;} Second solution #include<bits/stdc++.h>using namespace std;#define vi vector < int >#define pii pair < int , int >#define pb push_back#define mp make_pair#define ff first#define ss second#define foreach(it,v) for( __typeof((v).begin())it = (v).begin() ; it != (v).end() ; it++ )#define ll long long#define llu unsigned long long#define MOD 1000000007#define INF 0x3f3f3f3f#define dbg(x) { cout<< #x << ": " << (x) << endl; }#define dbg2(x,y) { cout<< #x << ": " << (x) << " , " << #y << ": " << (y) << endl; }#define all(x) x.begin(),x.end()#define mset(x,v) memset(x, v, sizeof(x))#define sz(x) (int)x.size()char s[103];int c[26];bool cmp(char a,char b){ if(c[a-'a'] == c[b-'a']) return a < b; return c[a-'a'] < c[b-'a'];}int main(){ int t,i; scanf("%d",&t); assert(1 <= t && t <= 100); while(t--) { scanf("%s",s); mset(c,0); for(i=0;s[i];i++) { assert('a' <= s[i] && s[i] <= 'z'); c[s[i]-'a']++; } int n = i; assert(1 <= n && n <= 100); sort(s,s+n,cmp); printf("%sn",s); } return 0;} coding problems