3170. 删除星号以后字典序最小的字符串
代码如下:
class Solution {
public:
string clearStars(string s) {
vector<stack<int>> cnt(26);// 统计每个字符的出现次数
for (int i = 0;i < s.size();i++) {
if (s[i] != '*') {
cnt[s[i] - 'a'].push(i);// 将当前字符的索引压入对应的栈中
}
else {
for (int j = 0;j < 26;j++) {
if (!cnt[j].empty()) {
s[cnt[j].top()] = '*';
cnt[j].pop();
break;
}
}
}
}
string res;
for (int i = 0;i < s.size();i++) {
if (s[i] != '*') {
res.push_back(s[i]);// 将非星号字符添加到结果字符串中
}
}
return res;
}
};