c_cpp 将“bbccaaddddddde”转换为“ddddddaabbcce”,按频率和字母顺序转换字符串。使用仿函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 将“bbccaaddddddde”转换为“ddddddaabbcce”,按频率和字母顺序转换字符串。使用仿函数相关的知识,希望对你有一定的参考价值。
class Comp {
public:
bool operator() (const pair<char, int> &p1, const pair<char, int> &p2) { // cannot forget const
if(p1.second > p2.second)
return true;
else if(p1.second == p2.second)
return p1.first < p2.first;
else
return false;
}
}; // cannot forget “;"
string convert2(const string& s) { // cannot forget const
if(s.empty()) return "";
unordered_map<char, int> mp;
vector<pair<char, int>> vp;
for(char c : s) mp[c]++;
for(auto p : mp) vp.push_back(p);
//sort(vp.begin(), vp.end(), Comp());
sort(vp.begin(), vp.end(), [](const pair<char, int> &p1, const pair<char, int> &p2) {
if(p1.second > p2.second)
return true;
else if(p1.second == p2.second)
return p1.first < p2.first;
else
return false;
});
string res;
for(auto p : vp) {
for(int i=0; i<p.second; ++i) res += p.first;
}
return res;
}
以上是关于c_cpp 将“bbccaaddddddde”转换为“ddddddaabbcce”,按频率和字母顺序转换字符串。使用仿函数的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 将IP地址转换为整数并将其转换回c
c_cpp 将excel列字符串转换为数字,例如,将“AA”转换为27。
c_cpp 将String转换为Int
c_cpp 将str转换为double
c_cpp 将int转换为字符串
c_cpp 将int转换为字符串