【C++算法】65.栈_删除字符中的所有相邻重复项
文章目录
- 题目链接:
- 题目描述:
- 解法
- C++ 算法代码:
题目链接:
1047. 删除字符串中的所有相邻重复项
题目描述:
解法
利用string模拟栈
元素依次进栈,当进栈元素和栈顶元素一样的时候,就弹出栈顶字符,然后元素继续往后处理。
C++ 算法代码:
class Solution
{
public:string removeDuplicates(string s) {// 删除字符串中相邻重复字符的算法// 基本思路:使用字符串模拟栈结构,遇到与栈顶相同的字符就将栈顶弹出,否则入栈string ret; // 结果字符串,同时作为栈结构// 遍历输入字符串中的每个字符for(auto ch : s){// 如果栈不为空,且当前字符与栈顶字符相同if(ret.size() && ch == ret.back()) ret.pop_back(); // 弹出栈顶字符(删除相邻重复的字符)else ret += ch; // 否则将当前字符入栈(添加到结果字符串末尾)}return ret; // 返回处理后的字符串}
};