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

DAY 50 leetcode 1047--栈和队列.删除字符串中的所有相邻重复项

题号1047

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

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

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

import java.util.ArrayDeque;
import java.util.Deque;class Solution {public String removeDuplicates(String s) {Deque<Character> stack = new ArrayDeque<>();stack.push(s.charAt(0)); // 使用push而不是add,以符合栈的常用方法for (int i = 1; i < s.length(); i++) {if (!stack.isEmpty() && s.charAt(i) == stack.peek()) {stack.pop(); // 如果当前字符与栈顶字符相同,弹出栈顶字符} else {stack.push(s.charAt(i)); // 否则,将当前字符推入栈中}}StringBuilder sb = new StringBuilder();while (!stack.isEmpty()) {sb.append(stack.pop()); // 将栈中的字符取出并添加到StringBuilder中}return sb.reverse().toString(); // 在返回前反转StringBuilder中的字符串}
}

重点:注意返回时将字符串反转,因为栈

相关文章:

  • 每日一道leetcode(补充版)
  • AI提效思考 - 第一期
  • 线程基础题
  • 【Elasticsearch入门到落地】11、RestClient初始化索引库
  • 【最后203篇系列】029 基于Machinations构造回测系统
  • SQL注入 01
  • 机器学习专栏(4):从数据饥荒到模型失控,破解AI训练的七大生死劫
  • 实现对象之间的序列化和反序列化
  • Kubernetes控制平面组件:调度器Scheduler(一)
  • Java 软件测试开发相关资源
  • DSA数据结构与算法 6
  • 快速从S32K358切换到328
  • 在阿里云和树莓派上编写一个守护进程程序
  • NLP 梳理03 — 停用词删除和规范化
  • Python 深度学习实战 第11章 自然语言处理(NLP)实例
  • 嵌入式芯片中的 SRAM 内容细讲
  • 4.20刷题记录(单调栈)
  • 非参数检验题目集
  • 将 JSON 字符串转化为对象的详细笔记 (Java示例)
  • 使用安全继电器的急停电路设计
  • 病人有头发,照护者不发疯:《黑镜》中的身体缺席与虚伪关怀
  • 吕国范任河南省人民政府副省长
  • 上海“生育友好岗”已让4000余人受益,今年将推产假社保补贴政策
  • 中央纪委办公厅公开通报3起整治形式主义为基层减负典型问题
  • 传染病防治法修订草案提请三审,拟加强医疗机构疾控能力建设
  • 清华数字政府与治理研究院揭牌:服务数字政府建设需求