LeetCode 451. Sort Characters By Frequency

用hash表记录每个字符的个数,开始我是新建了一个vector<pair<int,char>>然后依据个数排序。

后来发现可以直接对string排序。

其中运用了lambda表达式,利用引用捕获得到count。

class Solution {
public:
    string frequencySort(string s) {
        vector<int> count(256);
        for (char ch:s) ++count[ch];
        sort(s.begin(),s.end(),[&](char a, char b){return count[a]>count[b] || (count[a]==count[b] && a<b);});
        return s;
    }
};

 

关于Lambda,详见:

http://en.cppreference.com/w/cpp/language/lambda

https://www.cnblogs.com/DswCnblog/p/5629165.html

posted @ 2018-06-03 15:21  約束の空  阅读(114)  评论(0)    收藏  举报