791. Custom Sort String
https://leetcode.com/problems/custom-sort-string/
S中每个字母代表对应字母的顺序,对T以S中定义的顺序重排序。S中的字符相当于bucket sorting中的bucket,把T中字符放到对应的bucket即可。
/*
* @lc app=leetcode id=791 lang=cpp
*
* [791] Custom Sort String
*/
// @lc code=start
class Solution {
public:
string customSortString(string S, string T) {
vector<int> freqs(26, 0);
for (const auto t : T) ++freqs[t - 'a'];
string res(T.size(), ' ');
int c = 0;
for (const auto s : S) {
for (int i = 0; i < freqs[s - 'a']; ++i) {
res[c++] = s;
}
freqs[s - 'a'] = 0;
}
for (int i = 0; i < 26; ++i) {
for (int j = 0; j < freqs[i]; ++j) {
res[c++] = 'a' + i;
}
}
return res;
}
};
// @lc code=end
Last updated
Was this helpful?