Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- string smallestSubsequence(string s) {
- string ans = "";
- int last[26] = {0};
- int seen[26] = {0};
- for(int i=0; i<s.length(); i++){
- last[s[i]-'a'] = i;
- }
- for(int i=0; i<s.length(); i++){
- if(seen[s[i]-'a']) continue;
- while(!ans.empty() && ans.back() > s[i] && last[ans.back()-'a'] > i){
- seen[ans.back()-'a']--;
- ans.pop_back();
- }
- ans.push_back(s[i]);
- seen[s[i]-'a']++;
- }
- return ans;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement