wanghenshui / wanghenshui.github.io

my blog, please do not fork
https://wanghenshui.github.io
Other
4 stars 1 forks source link

lc wk2 #112

Closed wanghenshui closed 4 months ago

wanghenshui commented 5 months ago

2696

class Solution {
public:
    int minLength(string s) {
        stack<char> stk;
        for (auto i = 0; i< s.size(); i++) {
            while (!stk.empty()) {
                if (i >= s.size()) break;
                if ((stk.top() == 'A' && s[i] == 'B') || \
                (stk.top() == 'C' && s[i] == 'D') ) {
                    stk.pop();
                    cout << "pop " <<i << "\n";
                                        i++;
                } else {
                    break;
                }
            }
            if (i< s.size()) {
            stk.push(s[i]);
            cout <<"push " <<i<<" " <<s[i] << "\n";
            }
        }

        return stk.size();
    }
};

和题解差距很大,过于局限stack,其实deque vector也是stack,更好用一些。stack这个结构不咋地