注意题中说的是删除相邻的2个字母,如果相邻3个则会保留一个。
可以用模拟栈的解法。
class Solution {
public:
string removeDuplicates(string S) {
string stk; //用字符串模拟栈
for (char ch : S)
{
if (!stk.empty() && stk.back() == ch)
stk.pop_back(); //相同时,栈顶元素出栈且当前元素不进栈
else
stk += ch; //不同时,进栈
}
return stk;
}
};