Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 316. Remove Duplicate Letters
參考資訊:
https://www.cnblogs.com/grandyang/p/5085379.html
題目:

解答:
class Solution {
public:
string removeDuplicateLetters(string s) {
string ans = "0";
vector<int> cnt(255, 0);
vector<bool> visited(255, false);
for (char c : s) {
cnt[c] += 1;
}
for (char c : s) {
cnt[c] -= 1;
if (visited[c] == true) {
continue;
}
while (c < ans.back() && cnt[ans.back()]) {
visited[ans.back()] = false;
ans.pop_back();
}
ans += c;
visited[c] = true;
}
return ans.substr(1);
}
};