原题题目
代码实现(首刷大部分看解)
class Solution {
public:string smallestSubsequence(string s) {
unordered_map<char,int> map,visit;int pos = 0;string ret;for(const auto& chr:s) ++map[chr];for(int i=0;i<s.size();++i){
if(!map[s[i]]) continue;while(ret.size() && ret.back() > s[i] && map[ret.back()] && !visit[s[i]]){
visit[ret.back()] = 0;ret.pop_back();}if(!visit[s[i]]){
ret.push_back(s[i]);visit[s[i]] = 1;}--map[s[i]];}return ret;}
};