首页 > 其他 > 详细

451. Sort Characters By Frequency

时间:2020-04-13 09:43:12      阅读:52      评论:0      收藏:0      [点我收藏+]

Problem:

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.

Example 3:

Input:
"Aabb"

Output:
"bbAa"

Explanation:
"bbaA" is also a valid answer, but "Aabb" is incorrect.
Note that ‘A‘ and ‘a‘ are treated as two different characters.

思路

Solution (C++):

string frequencySort(string s) {
    if (s.empty())  return "";
    int n = s.length();
    vector<int> count(256, 0);
    
    for (char c : s)  ++count[c];
    
    sort(s.begin(), s.end(), [&](char a, char b) {
        return (count[a] > count[b]) || (count[a] == count[b] && a < b); });
    return s;
}

性能

Runtime: 104 ms??Memory Usage: 8.2 MB

思路

Solution (C++):


性能

Runtime: ms??Memory Usage: MB

451. Sort Characters By Frequency

原文:https://www.cnblogs.com/dysjtu1995/p/12688887.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!