如何k掉网站,邯郸小程序,福建宁德建设局网站,seo推广官网这题也是属于栈的经典应用。为什么这样说呢#xff1f;因为也是让我们删除相邻项。注意这里相邻项的理解#xff0c;并不仅仅是说最开始的字符串相邻的项。在我们删除了某些相邻项后#xff0c;会改变字符串#xff0c;导致原本不相邻的字符变成相邻的#xff0c;这同样属…这题也是属于栈的经典应用。为什么这样说呢因为也是让我们删除相邻项。注意这里相邻项的理解并不仅仅是说最开始的字符串相邻的项。在我们删除了某些相邻项后会改变字符串导致原本不相邻的字符变成相邻的这同样属于相邻项。这一系列比对字符再删除的流程恰好适用于用栈来解决。一些注意点我写在代码注释中。
代码如下
class Solution {
public:string removeDuplicates(string s) {stackchar st;for(int i 0;i s.size();i){if(st.empty() || st.top() ! s[i]){st.push(s[i]);continue;}st.pop();}//用来存储答案string result;//将栈里的字符拼接起来while(st.empty() ! 1){result st.top();st.pop();}//最后要反转顺序因为将字符存入栈之后再弹出栈顶对应字符串的尾部reverse(result.begin(),result.end());return result;}
};