【百日算法计划】:每日一题,见证成长(020)

server/2024/9/22 14:10:14/

题目

删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
输入:“abbaca”
输出:“ca”

思路

  • 栈的解法,判断字符与栈顶元素是否相等,相等则弹出栈顶元素,否则将字符押入栈(注意:不需要构造对象计数)
java">public class Code09 {//栈解法public String removeDuplicates(String s) {if (s == null) return null;Stack<Character> stack = new Stack<>();int n = s.length();for (int i = 0; i < n; i++) { //顺序处理每个字符char c = s.charAt(i);if (!stack.isEmpty() && c == stack.peek()){stack.pop();} else {stack.push(c);}}int size = stack.size();char[] chars = new char[size];for (int i = size-1; i >= 0; i--) {chars[i] = stack.pop();}String s1 = String.valueOf(chars);return s1;}   
}

http://www.ppmy.cn/server/120303.html

相关文章

Java流程控制语句——跳转语句详解:break 与 continue 有什么区别?

&#x1f310;在Java编程中&#xff0c;break和continue是两个重要的控制流语句&#xff0c;它们允许开发者根据特定条件改变程序的执行流程。虽然两者都用于中断当前的行为&#xff0c;但它们的作用方式不同。本文将通过生动的例子来详细解释这两个语句&#xff0c;并使用流程…

代码随想录算法训练营|344.反转字符串、541. 反转字符串II、54.替换数字

344.反转字符串 题目 参考文章 思路&#xff1a;本题的运用双指针的方式&#xff0c;掉换两个头尾两个元素&#xff0c;然后指针收缩再继续掉换&#xff0c;这里无论字符串大小是否为奇偶&#xff0c;都是可以判断出来的 代码&#xff1a; class Solution {public void rev…

【NTN 卫星通信】关于卫星通信的一次访谈

1 概述 通过CSDN的途径&#xff0c;有个咨询公司找到我&#xff0c;说是有投资公司看到我的博客&#xff0c;希望做一次访谈&#xff0c;我回答了10个问题&#xff0c;现在发到博客上&#xff1b;很多观点都是自己根据经验拍的&#xff0c;并没有严格的计算&#xff0c;有兴趣的…

C++STL六大组件

C标准模板库&#xff08;STL&#xff09;是一个功能强大的库&#xff0c;提供了六大组件&#xff0c;这些组件相互协作&#xff0c;为开发者提供了高效且可重用的数据结构和算法。以下是这六大组件的详细介绍&#xff1a; 容器是用于存储数据的数据结构&#xff0c;它们提供了…

如何有效检测住宅IP真伪?

在当今的互联网时代&#xff0c;住宅IP&#xff08;即家庭用户通过宽带服务提供商获得的IP地址&#xff09;在跨境电商、广告投放、网络安全等多个领域扮演着重要角色。然而&#xff0c;随着网络环境的复杂化和欺诈行为的增多&#xff0c;如何有效检测和辨别住宅IP的真伪成为了…

Kubernetes实战——集群监控和可视化管理

目录 一、Kube-Prometheus 1、版本兼容性介绍 2、安装 kube-prometheus 3、安装Ingress&#xff0c;实现访问 二、K8s安装ELK日志收集 1、安装Elasticsearch 2、安装Logstash 3、安装Filebeat 4、安装Kibina 三、Dashboard安装与使用 1、安装 2、创建token 3、使用 …

【JAVA开源】基于Vue和SpringBoot的企业客户管理系统

本文项目编号 T 036 &#xff0c;文末自助获取源码 \color{red}{T036&#xff0c;文末自助获取源码} T036&#xff0c;文末自助获取源码 目录 一、系统介绍1.1 管理员角色1.2 普通员工角色1.3 系统特点 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内…

算法练习题27——疫情下的电影院(模拟)

其实思路还好 就是输入有点难搞 Java import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);String input scanner.nextLine();// 去掉输入字符串的方括号if (input.…