1047. 删除字符串中的所有相邻重复项

用栈保存已经遍历过的内容,但是与数组相比更方便访问、删除离当前访问元素最相邻的已访问元素(数组可以用置位来表示删除)。

class Solution {
public:
    string removeDuplicates(string s) {

        stack<char> sts;
        for(int i = 0; i < s.size(); i++)
        {
            if( sts.empty() || s[i] != sts.top() )
                sts.push( s[i] );
            else
                sts.pop();
        }
    

        string ans;
        while( !sts.empty() )
        {
            ans += sts.top();
            sts.pop();
        }
       reverse( ans.begin(), ans.end() );
       return ans;
    }
};
posted @ 2025-03-03 20:55  名字好难想zzz  阅读(29)  评论(0)    收藏  举报