当前位置:网站首页>761. 特殊的二进制序列

761. 特殊的二进制序列

2022-08-10 05:43:00 anieoo

原题链接:761. 特殊的二进制序列

 

solution

class Solution {
public:
    static bool cmp(const string &a, const string &b) {
        return a > b;
    }
    string makeLargestSpecial(string s) {
        if(s.size() <= 2) return s;

        int cnt = 0, left = 0;
        vector<string> subs;
        for (int i = 0; i < s.size(); ++i) {
            if (s[i] == '1') {
                ++cnt;
            }
            else {
                --cnt;
                if (cnt == 0) {
                    subs.push_back("1" + makeLargestSpecial(s.substr(left + 1, i - left - 1)) + "0");           
                    left = i + 1;
                }
            }
        }
        sort(subs.begin(), subs.end(), cmp);
        string ans;
        for(auto &c : subs) ans += c;
        return ans;
    }
};
原网站

版权声明
本文为[anieoo]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_42174306/article/details/126242068