学习安排根据《代码随想录》leetcode1047
这道简单题终于可以秒了,从思路到实现不到三分钟,终于看到进步了,fighting!
思路:
- 从字符串的末尾读取元素入栈 :(1)栈为空时,入栈;(2)栈顶元素与字符串下一个元素不等时入栈
- 当栈顶元素与字符串下一个元素相等时,删除栈顶元素
- 循环
- 将栈的元素赋给新串
class Solution {
public:
string removeDuplicates(string s)
{
string ss;
stack<char>sta;
for(int i=s.length()-1;i>=0;i--)
{
if(sta.empty()||sta.top()!=s[i])
{
sta.push(s[i]);
}
else if(sta.top()==s[i])
{
sta.pop();
}
}
while(!sta.empty())
{
ss+=sta.top();
sta.pop();
}
return ss;
}
};