451. Sort Characters By Frequency(桶排序)
2024-09-06 09:45:34
Given a string, sort it in decreasing order based on the frequency of characters.
Example 1:
Input:
"tree" Output:
"eert" Explanation:
'e' appears twice while 'r' and 't' both appear once.
So 'e' must appear before both 'r' and 't'. Therefore "eetr" is also a valid answer.
Example 2:
Input:
"cccaaa" Output:
"cccaaa" Explanation:
Both 'c' and 'a' appear three times, so "aaaccc" is also a valid answer.
Note that "cacaca" is incorrect, as the same characters must be together.
class Solution {
public:
//桶排序。将相同长度的子串放到同一个桶中,最后利用桶排序
string frequencySort(string s) {
//防止s="aaa" 插入 b[3] = "aaa";
vector<string> bucket(s.size()+1,"");
map<char,int> m;
string res;
for(int i=0;i<s.size();i++){
m[s[i]]++;
}
for(auto sub:m){
int n = sub.second;
int c = sub.first;
//长度为n的子串都放到bucket[n]
bucket[n].append(string(n,c));
}
//最后利用桶排序,倒序遍历桶即可
for(int i=bucket.size()-1;i>=0;i--){
res.append(bucket[i]);
}
return res;
}
};
最新文章
- javaScript生成二维码(支持中文,生成logo)
- word域1
- python编程关键字
- docker mysql
- Apache 常用伪静态配置
- 点餐APP 冲刺三总结
- maven中Rhino classes (js.jar) not found - Javascript disabled的处理
- 项目源码--Android视频MV类网站客户端
- web端和手机端测试有什么不同
- Could note find result map com.xxxx.entity.UserAccountDO
- Ajax 模糊查询的简单实现
- [SCOI2009] 迷路
- 004_Python高级特性(1):Iterators、Generators和itertools(参考)
- js设置睡眠N秒后再执行
- Hibernate.基础篇《二》. getOpenSession() 和 getCurrentSession() - 1
- pygame 入门实例
- me909e-821 拨号流程
- jQuery(六):value值操作
- vue实现点击关注之后及时更新列表
- JDK,常见数据结构解读