classSolution{public:stringfrequencySort(strings){constintn=s.length();stringans;vector<int>count(128);// bucket[i] := stores chars that appear i times in svector<vector<char>>bucket(n+1);for(constcharc:s)++count[c];for(inti=0;i<128;++i){constintfreq=count[i];if(freq>0)bucket[freq].push_back((char)i);}for(intfreq=n;freq>0;--freq)for(constcharc:bucket[freq])ans+=string(freq,c);returnans;}};
classSolution{publicStringfrequencySort(Strings){finalintn=s.length();StringBuildersb=newStringBuilder();int[]count=newint[128];// bucket[i] := stores chars that appear i times in sList<Character>[]bucket=newList[n+1];for(finalcharc:s.toCharArray())++count[c];for(inti=0;i<128;++i){finalintfreq=count[i];if(freq>0){if(bucket[freq]==null)bucket[freq]=newArrayList<>();bucket[freq].add((char)i);}}for(intfreq=n;freq>0;--freq)if(bucket[freq]!=null)for(finalcharc:bucket[freq])for(inti=0;i<freq;++i)sb.append(c);returnsb.toString();}}