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