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

Leetcode——1047. 删除字符串中的所有相邻重复项

题解一

思路

和上一题区别不大,就是在进栈之前和栈顶元素进行比较,相同就弹出,不同就进栈,最后对栈内的元素进行输出。

代码

class Solution {
    public String removeDuplicates(String s) {
        Deque<Character> stack = new ArrayDeque<>();
        for(int i = 0; i < s.length(); i++){
            char temp = s.charAt(i);
            if (!stack.isEmpty() && temp == stack.peek()){
                stack.pop();
            }
            else{
                stack.push(temp);
            } 
        }
        String result = "";
        while(!stack.isEmpty()){
            result = stack.pop() + result;
        }
        return result;

    }
}

 总结

第一点就是要在peek()之前检查栈内是否还有元素,空栈进行peek()操作会报错。

不知道stack怎么返回字符串,以为会有什么方法,结果就是一个简单的遍历。

进行遍历时,要注意栈先进后出的机制,注意不要将字符串反转。

相关文章:

  • 阶跃星辰开源300亿参数视频模型Step-Video-TI2V:运动可控+102帧长视频生成
  • Hyperlane 似乎是一个轻量级、高性能的 Rust HTTP 服务器库
  • Redis原理:Monitor 实现
  • 雕马快租:直播设备租赁新趋势,低成本重构传统营销模式的破局之道
  • 缓存相关问题
  • 单例模式在Python中的实现和应用
  • 【SpringBoot篇】SpringBoot的自动装配原理
  • 安装SQL Server 2022常见问题和环境配置
  • http://noi.openjudge.cn——4.7算法之搜索_1814:恼人的青蛙
  • unable to load vboxguest kernel module
  • Redis 核心源码解析:从设计哲学到企业级应用实践
  • Triformer:长序列多变量时间序列预测
  • 记录一次部署k3s后,服务404 page not found,nginx显示正常
  • PL/SQL语言的字符串处理
  • VUE项目初始化
  • 深入理解Golang标准库`testing/fstest`包的用法和技巧进行文件系统测试
  • 【Git】用Git命令克隆一个远程仓库、修改仓库中的文件,并将更改推送到远程仓库
  • Kotlin 协程官方文档知识汇总(一)
  • 基本数据操作关于torch
  • 【读点论文】面向识别的长弯曲文本预处理算法,有点局限
  • 浙大举办“科学与人文”学术论坛,纪念竺可桢诞辰135周年
  • 四川省外卖骑手接单将不再强制要求上传健康证
  • 老旧小区加装电梯后续维护谁负责?上海:各区属房管集团托底保障
  • 消费维权周报丨上周涉汽车类投诉较多,涉加油“跳枪”等问题
  • 证监会副主席李明:近期将出台深化科创板、创业板改革政策措施
  • 菲律宾中期选举结果揭晓,马科斯与杜特尔特家族重回“权力的游戏”