LeetCode : Sort Characters By Frequency
来源:互联网 发布:淘宝网卖安眠药叫什么 编辑:程序博客网 时间:2024/06/08 06:55
Solution 1 - O(nlogn)
先把字符串排序,再统计次数。
string frequencySort(string s){ if (s.length() < 3) return s; sort(s.begin(), s.end()); // 把s中的字符排序,相同的字符放在一起 vector<string> rec(s.length()); // 对s中的每个字符计数 int num = 1, begin = 0; for (int i = 1; i <= s.size(); i++) { if (s[i] != s[i - 1])// 和前一个不同则将前一个字符保存,后面的重新开始计数 { rec[num - 1] += s.substr(begin, num); begin = i; num = 1; continue; } num++; // 和前一个字符相同则计数加1 } rec[num - 1] += s.substr(begin, num); string result = ""; for (int i = rec.size() - 1; i >= 0; i--) result += rec[i]; return result;}
Solution 2 - O(n)
通过map来统计频率
string frequencySort(string s){ if (s.length() < 3) return s; // 用map统计频率 (字符做键) unordered_map<char, int> rec; for (int i = 0; i < s.size(); i++) rec[s[i]] ++; // 把map转移到vector中(频率做键) vector<string> vRec(s.size()); for (auto it : rec) vRec[it.second - 1].append(it.second, it.first); // 按照频率依次加到结果中 string result = ""; for (int i = vRec.size() - 1; i >= 0; i--) result += vRec[i]; cout << result << endl; return result;}
0 0
- LeetCode : Sort Characters By Frequency
- Leetcode Sort Characters By Frequency
- [LeetCode]Sort Characters By Frequency
- LeetCode 451. Sort Characters By Frequency
- 【LeetCode-451】Sort Characters By Frequency
- leetcode 451 Sort Characters By Frequency C++
- [LeetCode]451. Sort Characters By Frequency
- Leetcode 451 Sort Characters By Frequency
- [leetcode] 451. Sort Characters By Frequency
- [LeetCode] Sort Characters By Frequency(Java)
- [LeetCode]451. Sort Characters By Frequency
- LeetCode笔记:451. Sort Characters By Frequency
- LeetCode 451. Sort Characters By Frequency
- 【LeetCode】 451. Sort Characters By Frequency
- [leetcode]451. Sort Characters By Frequency
- Leetcode 451. Sort Characters By Frequency
- Leetcode 451. Sort Characters By Frequency
- Leetcode-451. Sort Characters By Frequency
- Linux的JCPU与PCPU
- mnist训练与测试自己手写数字
- Hadoop2.0中yarn中的resourcemanager的作用
- caffe c++API特征提取
- java同步块
- LeetCode : Sort Characters By Frequency
- 决策树算法原理及Spark MLlib调用实例(Scala/Java/python)
- MySQL Order By实现原理分析和Filesort优化
- 网卡接收和发送数据包的过程
- SQL Server 扩展事件(Extented Events)从入门到进阶(1)——从SQL Trace到Extented Events
- mod_jk(Apache+mod_jk+tomcat)详细配置方法
- NOIP2016全国信息学分区普级组初赛答案
- android activity的管理类
- eml文件是什么格式的文件?怎么打开?怎么导出eml文件?