自定义字符串排序
示例
输入: order = “cba”, s = “abcd”
输出: “cbad”
解释:
“a”、“b”、“c”是按顺序出现的,所以“a”、“b”、“c”的顺序应该是“c”、“b”、“a”。因为“d”不是按顺序出现的,所以它可以在返回的字符串中的任何位置。“dcba”、“cdba”、“cbda”也是有效的输出。
输入: order = “cbafg”, s = “abcd”
输出: “cbad”
// C++
class Solution {
public:
string customSortString(string order, string s) {
vector<int> val(26);
for (int i = 0; i < order.size(); ++i) {
val[order[i] - 'a'] = i + 1;
}
sort(s.begin(), s.end(), [&](char c0, char c1) {
return val[c0 - 'a'] < val[c1 - 'a'];
});
return s;
}
};