当前位置: 首页 > news >正文

算法-栈-删除字符串中的所有相邻重复项

力扣题目:1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode)

给出由小写字母组成的字符串 s重复项删除操作会选择两个相邻且相同的字母,并删除它们。

s 上反复执行重复项删除操作,直到无法继续删除。

在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

示例:

输入:"abbaca"
输出:"ca"
解释:
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。

提示:

  1. 1 <= s.length <= 10^5
  2. s 仅由小写英文字母组成。

算法如下:



import java.util.HashSet;
import java.util.Set;
import java.util.Stack;

public class Solution {
    public String removeDuplicates(String s) {
        //用set集合存储每一个字符
        Set<Character> set=new HashSet<>();
        //用字符缓存处理完的字符串
        StringBuffer s1=new StringBuffer();
        //用栈执行删除重复字符操作
        Stack<Character> stack=new Stack<>();
        //长度
        int L=s.length();
        for(int i=0;i<L;i++)
        {   //不存在,进行添加,入栈
            if(!set.contains(s.charAt(i)))
            {
                set.add(s.charAt(i));
                stack.push(s.charAt(i));
            }else {
                //存在判断是否连续
                if(stack.size()>=1&&s.charAt(i)==stack.peek())
                {
                    //移除栈顶
                    stack.pop();
                }else {
                    //入栈
                    stack.push(s.charAt(i));
                }
            }
        }
        //取元素,反转
        while (stack.size()>=1)
        {
            s1.append(stack.pop());
        }
        return s1.reverse().toString();
    }
}

相关文章:

  • 部署k8s 集群1.26.0(containerd方式)
  • SQL优化可以从哪些方面入手
  • 网络基础(持续更新中)
  • 什么是HTTP和HTTPS?它们之间有什么区别?
  • Leetcode 72. 编辑距离
  • UE5 Niagara 粒子远处闪烁解决
  • 告别冷冰冰:如何训练AI写出温暖人心的广告文案
  • 函数重载讲解
  • ios苹果手机使用AScript应用程序实现UI自动化操作,非常简单的一种方式
  • 25化学化工研究生复试面试问题汇总 化学化工专业知识问题很全! 化学化工复试全流程攻略 化学化工考研复试真题汇总
  • 深入理解Python字典(Dictionary):从基础操作到高级应用
  • B. 中位数
  • 安装海康威视相机SDK后,catkin_make其他项目时,出现“libusb_set_option”错误的解决方法
  • 排序与算法:希尔排序
  • 航空公司客户价值分析
  • 网页制作01-html,css,javascript初认识のhtml的基本标记
  • 【Linux】Linux 文件系统——关于inode 不足的相关案例
  • Html、Markdown的信息提取
  • 解锁享元模式:内存优化与性能提升的关键密码
  • Python 安装避坑指南
  • 44岁街舞运动推广者、浙江省街舞运动协会常务理事钟永玮离世
  • 新消费观察| 零售品牌 “走出去” ,如何开辟“新蓝海”?
  • 央行:增加支农支小再贷款额度3000亿元
  • 商务部:自5月7日起对原产于印度的进口氯氰菊酯征收反倾销税
  • 强沙尘暴压城近万名游客被困,敦煌如何用3小时跑赢12级狂风?
  • 交通运输部、水利部同日召开会议,深刻汲取贵州游船倾覆事故教训