leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0316.cpp (542B)
0 class Solution { 1 public: 2 string removeDuplicateLetters(string s) { 3 uint16_t last[128] = {0}, seen[128] = {0}; 4 string res = ""; 5 6 for (int i = 0; i < s.size(); i++) 7 last[s[i]] = i; 8 for (int i = 0; i < s.size(); i++) { 9 if (seen[s[i]]++) continue; 10 while (!res.empty() && res.back() > s[i] && i < last[res.back()]) { 11 seen[res.back()] = 0; 12 res.pop_back(); 13 } 14 res.push_back(s[i]); 15 } 16 return res; 17 } 18 };