Jun 27, 2024
* हटाने के बाद लीफ्ट ओवर स्ट्रिंग को कंपाइल करनाint n = s.length();
priority_queue<pair<char, int>, vector<pair<char, int>>, comparator> pq;
struct comparator {
bool operator()(pair<char, int>& p1, pair<char, int>& p2) {
if (p1.first == p2.first) return p1.second < p2.second;
return p1.first > p2.first;
}
};
for (int i = 0; i < n; ++i) {
if (s[i] != '*') {
pq.push({s[i], i});
} else {
auto [char, idx] = pq.top();
pq.pop();
s[idx] = '*';
}
}
string result;
for (int i = 0; i < n; ++i) {
if (s[i] != '*') result.push_back(s[i]);
}