1047.删除字符串中的所有相邻重复项
- 创业
- 2025-08-14 22:09:01

原题链接:1047. 删除字符串中的所有相邻重复项
思路: 只需要删除相邻又相同的字符就行了 那么只需要运用一个栈来存储当前需要进行匹配的元素 遍历字符串的字符 字符和栈顶的元素不相等时,就代表不是相邻且相同的 需要删除字符 那么将这个字符压入栈中进行存储 如果当前遍历的字符和栈顶元素相等时,就代表是相邻且相同的 需要删除字符 那么将这个栈顶弹出,就代表删除了相邻的的字符重复项
全代码:
class Solution { public: string removeDuplicates(string s) { stack<char> stack_op; for(int i = 0; i < s.size(); i++) {//遍历字符串 if(stack_op.empty() || stack_op.top() != s[i]) {//如果栈为空,或者栈顶元素不等于s[i],则代表不是重复匹配项。将s[i]压入栈 stack_op.push(s[i]); } else {//栈不为空的情况下,栈顶元素 == s[i],代表为需要删除的重复项,此时栈顶弹出 stack_op.pop(); } } s = "";//重置字符串 while(!stack_op.empty()) {//将栈中的元素逐个压入字符串内,但是要注意,压入后字符串和正确答案互为倒序 s += stack_op.top(); stack_op.pop(); } //反转下字符串,则为正确答案 reverse(s.begin(),s.end()); return s; } };1047.删除字符串中的所有相邻重复项由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“1047.删除字符串中的所有相邻重复项”