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 = "";
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 };