首页 > 其他分享 >删除字符串中的所有相邻重复项(1047)

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

时间:2024-08-20 22:40:18浏览次数:4  
标签:遍历 1047 charAt 删除 相邻 result 字符串 stack

题目描述

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

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

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

解题思路

这里我们还是使用栈这个数据结构,我们还是遍历当前字符串,如果栈此时为空我们则直接将遍历的字符放入栈中,然后继续遍历,当我们当前遍历的字符和栈顶的字符相等我们弹出栈顶元素,然后再继续遍历,如果遍历的元素和栈顶元素不同则直接入栈

代码

class Solution {
    public String removeDuplicates(String s) {
        if (s.length() == 1) {
            return s;
        }
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            if (stack.isEmpty()) {
                stack.push(s.charAt(i));
            } else if (s.charAt(i) == stack.peek()) {
                stack.pop();
            } else {
                stack.push(s.charAt(i));
            }
        }
        StringBuilder result = new StringBuilder();
		
        while (!stack.isEmpty()) {
            result.append(stack.pop());
        }
        return result.reverse().toString();
    }
}

标签:遍历,1047,charAt,删除,相邻,result,字符串,stack
From: https://www.cnblogs.com/dfj-blog/p/18370466

相关文章

  • Python字符串格式化:%和.format
    Python中字符串格式化主要有两种方式:使用%操作符(也称为旧式或C风格的字符串格式化)和使用.format()方法(也称为新式字符串格式化)。每种方法都有其用途和优缺点,但在现代Python代码中,推荐使用.format()方法或更现代的f-strings(Python3.6+)。不过,了解%和.format()方法......
  • c语言基础--------字符串指针
    在C语言中,字符串指针是一个指向字符类型的指针,通常用于指向字符串的第一个字符。字符串在C语言中通常表示为字符数组,而字符串指针则是用来存储这种字符数组首地址的变量。定义字符串指针字符串指针的定义方式如下:char*stringPtr;这里的char*表示stringPtr是......
  • 字符串相加,给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
    字符串相加,给定两个字符串形式的非负整数num1和num2,计算它们的和。#include<stdio.h>#include<stdlib.h>#include<string.h>/***将两个字符串形式的非负整数相加,并返回结果字符串。**@paramnum1第一个整数的字符串表示*@paramnum2第二个整数的字符串表......
  • 信息学奥赛初赛天天练-70-NOIP2016普及组-基础题1-二进制、二进制状态表示、二进制加
    NOIP2016普及组基础题11以下不是微软公司出品的软件是()APowerpointBWordCExcelDAcrobatReader2如果256种颜色用二进制编码来表示,至少需要()位A6B7C8D93以下不属于无线通信技术的是()A蓝牙BWifiCGPRSD以太网7......
  • 根据字符串动态地注册服务
    usingSystem;usingSystem.Reflection;usingMicrosoft.Extensions.DependencyInjection;publicclassStartup{publicvoidConfigureServices(IServiceCollectionservices){//假设我们要注册的类名是"MyService"stringserviceName=&......
  • 11 根据相应规则判断字符串是否正确
    现有两个机器人M1和M2它们要进行对话,规则如下:M1只会说“Y”,“N”,“2”;M2只会说“y”,“n”,“1”;M1先主动说话;当一个机器人说的不是数字时,它自己必须继续说话,对方不能说话;当一个机器人说出数字时,它自己停止说话,此时对方可以接着说话,也可以不说话从而结束对话;编写程序判定输......
  • 【C语言】基础知识详解(二) 字符串
    一、什么是字符串?在C语言中,字符串是一种特殊的字符数组,用于存储一系列字符。字符串的表示:在C语言中,字符串是由字符组成的数组,并以空字符'\0'结束。空字符用于标识字符串的结束。例如,字符串"hello"在内存中实际上是{'h','e','l','l','o','\0'}。字符串声明:可以使......
  • 字符串相乘
    给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的BigInteger库或直接将输入转换为整数。示例1:输入:num1="2",num2="3"输出:"6"示例 2:输入:num1="123",num2="45......
  • Oracle数据库必学!超实用的9个字符串处理函数
    Oracle查询语句中的单行函数,特别是一些常用的字符串处理函数。1.ConCAT函数作用:将两个字符串连接在一起,生成一个新的字符串。使用方法:concat(字符串1,字符串2)示例:SELECTconcat('Hello,','World')FROMDUAL;结果为:“Hello,World”。2.CHR与ASCII函数CHR函数......
  • 字符函数与字符串函数详解
    ......