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

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

时间:2022-11-16 15:35:47浏览次数:74  
标签:1047 删除 重复 top 相邻 字符串 stack

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

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

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

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

示例:

输入:"abbaca"
输出:"ca"
解释:
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。

提示:

  1. 1 <= S.length <= 20000
  2. S 仅由小写英文字母组成。

解法:可利用栈的数据结构思想进行匹配”弹栈“,用top记录栈顶所在下标的值

class Solution {
    public String removeDuplicates(String s) {
        char[] stack = s.toCharArray();
        int top = -1;
        for (int i = 0;i < s.length();i++) {
            char ch = stack[i];
            if (top == -1 || stack[top] != ch) {
                stack[++top] = ch;
            } else {
                top--;
            }
        }
        return String.valueOf(stack,0,top+1);
    }
}

 

标签:1047,删除,重复,top,相邻,字符串,stack
From: https://www.cnblogs.com/fulaien/p/16896028.html

相关文章

  • Go语言中字符串的查找方法小结
    这篇文章主要介绍了Go语言中字符串的查找方法小结,示例的main函数都是导入strings包然后使用其中的方法,需要的朋友可以参考下 1.funcContains(s,substrstring)bool这......
  • 第3章 类、对象和字符串的介绍(笔记)
    3.1简介演示如何创建和使用自己的类。3.2定义具有成员函数的类先画UML类图。在类的范围里编写函数。3.3定义具有形参的成员函数更新UML类图。添加函数的形参,形参和......
  • 工作实战-字符串常用的API
    字符串常用APIString.prototype.slice[start,end)//字符串分割(截断)start---从第几位开始截end---截到第几位//举个栗子letuserName='码农哥哥'lethan......
  • yaml 使用特殊符号| 解决字符串带换行的问题
    前言在yaml文件中通过字符串写一行,如果字符串需要换行的,可以使用yaml中的特殊符号|和>。管道符||这个控制符的作用是保留文本每一行尾部的换行符"\n",等效于|+。|+......
  • 特殊Number:值为数字的字符串
    JavaScript字符串可以包含数字内容:varx=100;//xisanumbervary="100";//yisastringJavaScript将尝试在所有数字运算中将字符串转换为数......
  • python 中统计每一个字符串中每一个字符出现的次数
     001、直接使用字典进行统计>>>str1="aaaabbcdddefff"##测试字符串>>>dict1=dict()>>>foriinstr1:##利用条件分支进行判断.........
  • 线性DP-2472. 不重叠回文子字符串的最大数目
    问题描述给你一个字符串s和一个正整数k。从字符串s中选出一组满足下述条件且不重叠的子字符串:每个子字符串的长度至少为k。每个子字符串是一个回文串......
  • JAVA中字符串的插入
    一、问题描述就是我们现在有一个字符串,我们需要实现一个功能,就是选择在字符串中字符的ASCII码最大的地方,插入字符串。二、解决思路我们直接循环,获取字符串中所有的字符,......
  • java 获取字符串长度
    获取字符串长度/***获取字符串的长度,如果有中文,则每个中文字符计为2位*@paramvalue指定的字符串*@return字符串的长度*/publicstaticintlength......
  • 常用的JavaScript代码技巧 (一)字符串、数字
    一、字符串类1.比较时间consttime1="2022-03-0510:00:00";consttime2="2022-03-0510:00:01";constovertime=time1<time2;//overtime=>true2.货币格式......