当前位置: 首页 > 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怎么返回字符串,以为会有什么方法,结果就是一个简单的遍历。

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

http://www.dtcms.com/a/91376.html

相关文章:

  • 阶跃星辰开源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
  • 【读点论文】面向识别的长弯曲文本预处理算法,有点局限
  • Java 字符流全解析:核心类实战指南
  • SpringBoot 启动优化 问题
  • 什么是Java序列化?什么情况下需要使用序列化
  • 5. 实现一个中间件
  • S7-1200对V90 PN进行位置控制的三种方法
  • 新能源行业:卓越 UE/UI 设计,引领业务腾飞的新引擎
  • 23种设计模式-命令(Command)设计模式
  • 数据文件误删除,OceanBase中如何重建受影响的节点
  • Axure设计之中继器表格——拖动行排序教程(中继器)
  • 重庆软航NTKO WebOffice控件在谷歌Chrome 133版提示扩展已停用解决方案!