题目

/remove-duplicate-letters


算法

* 哈希


代码


class Solution {

public:

    string removeDuplicateLetters(string s) {

        int m[256] = {0}, visited[256] = {0};

        string res = "0";

        for (auto a : s) ++m[a];

        for (auto a : s) {

            --m[a];

            if (visited[a]) continue;

            while (a < res.back() && m[res.back()]) {

                visited[res.back()] = 0;

                res.pop_back();

            }

            res += a;

            visited[a] = 1;

        }

        return res.substr(1);

    }

};

results matching ""

    No results matching ""