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

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中的字符串}
}

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

http://www.xdnf.cn/news/714.html

相关文章:

  • Spring MVC 如何体现 Model-View-Controller 各自的职责?它们之间是如何协作的?
  • 【Linux】进程状态
  • 【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(17):PlanReactExecutor
  • OpenCV 自适应背景更新 cv2.accumulateWeighted
  • 【OC】AVPlayerLayer的学习
  • PG psql --single-transaction 参数功能
  • 秘密任务 3.0:如何通过 JWT 认证确保 WebSockets 安全
  • c++基础·左值右值
  • HBase安装与基本操作指南
  • 安卓单机斗地主,具备休闲挑战等多模式
  • paddleocr出现: [WinError 127] 找不到指定的程序解决办法
  • 一招解决所以Maven找不到依赖包的问题
  • 即插即用模块(1) -MAFM特征融合
  • javascript day4
  • LicheeRV Nano 与Ubuntu官方risc-v 镜像混合
  • 12【生命周期·入门】为何需要与显式标注 (`‘a`):让编译器读懂引用的“有效期”
  • Oracle--SQL基本语法
  • lmm-r1开源程序是扩展 OpenRLHF 以支持 LMM RL 训练,用于在多模态任务上重现 DeepSeek-R1
  • Eureka搭建
  • BeautifulSoup 库的使用——python爬虫
  • 算法—合并排序—js(场景:大数据且需稳定性)
  • 23种设计模式-结构型模式之装饰器模式(Java版本)
  • C#进阶学习(八)常见的泛型数据结构类(3)SortedDictionary<TKey, TValue>与SortedList<TKey, TValue>
  • 大语言模型推理能力的强化学习现状理解GRPO与近期推理模型研究的新见解
  • PG CTE 递归 SQL 翻译为 达梦版本
  • 将 JSON 字符串转化为对象的详细笔记 (Java示例)
  • 【AI量化第26篇】以配置为核心的工程化研究管理——基于miniQMT的量化交易回测系统开发实记
  • 15. 三数之和
  • 计算机网络中的网络层:架构、功能与重要性
  • llama factory