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

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

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

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

示例:

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

解题思路

使用栈来匹配两个相同的字母

代码

    public String removeDuplicates(String S) {LinkedList<Character> stack=new LinkedList<>();StringBuilder stringBuilder = new StringBuilder();int n=S.length();for (int i = 0; i < n; i++) {if(!stack.isEmpty()&&stack.getLast()==S.charAt(i))//遇到相同的字母就出栈stack.removeLast();else stack.addLast(S.charAt(i));}for (Character character : stack) {//将没有匹配的字母连接返回stringBuilder.append(character);    }return stringBuilder.toString();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot: spring Aware的目的是为了让Bean获得Spring容器的服务

Spring Aware的目的是为了让Bean获得Spring容器的服务 //获取容器中的bean名称import org.springframework.beans.factory.BeanNameAware;//获得资源加载器&#xff0c;可以获得额外的资源import org.springframework.context.ResourceLoaderAware; package ch2.aware; import …

10张图带你深入理解Docker容器和镜像

【编者的话】本文用图文并茂的方式介绍了容器、镜像的区别和Docker每个命令后面的技术细节&#xff0c;能够很好的帮助读者深入理解Docker。这篇文章希望能够帮助读者深入理解Docker的命令&#xff0c;还有容器&#xff08;container&#xff09;和镜像&#xff08;image&#…

matlab界area_Matlab的数据科学界

matlab界area意见 (Opinion) My personal interest in Data Science spans back to 2011. I was learning more about Economies and wanted to experiment with some of the ‘classic’ theories and whilst many of them held ground, at a micro level, many were also pur…

javascript异步_JavaScript异步并在循环中等待

javascript异步Basic async and await is simple. Things get a bit more complicated when you try to use await in loops.基本的async和await很简单。 当您尝试在循环中使用await时&#xff0c;事情会变得更加复杂。 In this article, I want to share some gotchas to wat…

白盒测试目录导航

白盒测试目录导航&#xff08;更新中&#xff09; 2017-12-29 [1] 白盒测试&#xff1a;为什么要做白盒测试 [2] 白盒测试&#xff1a;理论基础 [3] 白盒测试实战&#xff08;上&#xff09; [4] 白盒测试实战&#xff08;中&#xff09; [5] 白盒测试实战&#xff08;下&#…

hdf5文件和csv的区别_使用HDF5文件并创建CSV文件

hdf5文件和csv的区别In my last article, I discussed the steps to download NASA data from GES DISC. The data files downloaded are in the HDF5 format. HDF5 is a file format, a technology, that enables the management of very large data collections. Thus, it is…

CSS仿艺龙首页鼠标移入图片放大

CSS仿艺龙首页鼠标移入图片放大&#xff0c;效果似乎没有js好。。。。。。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>图片放大</title><style>*{padding:0;margin:0;}body{padding-…

leetcode 224. 基本计算器(栈)

给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 示例 1&#xff1a; 输入&#xff1a;s “1 1” 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;s " 2-1 2 " 输出&#xff1a;3 示例 3&#xff1a; 输入&#xff…

机械制图国家标准的绘图模板_如何使用p5js构建绘图应用

机械制图国家标准的绘图模板The theme for week #5 of the Weekly Coding Challenge is:每周编码挑战第5周的主题是&#xff1a; 创建绘图应用程序 (Creating a Drawing Application) This is the first application that we are building in the #weeklyCodingChallenge prog…

机器学习常用模型:决策树_fairmodels:让我们与有偏见的机器学习模型作斗争

机器学习常用模型:决策树TL; DR (TL;DR) The R Package fairmodels facilitates bias detection through model visualizations. It implements a few mitigation strategies that could reduce bias. It enables easy to use checks for fairness metrics and comparison betw…

高德地图如何将比例尺放大到10米?

2019独角兽企业重金招聘Python工程师标准>>> var map new AMap.Map(container, {resizeEnable: true,expandZoomRange:true,zoom:20,zooms:[3,20],center: [116.397428, 39.90923] }); alert(map.getZoom());http://lbs.amap.com/faq/web/javascript-api/expand-zo…

Android 手把手带你玩转自己定义相机

本文已授权微信公众号《鸿洋》原创首发&#xff0c;转载请务必注明出处。概述 相机差点儿是每一个APP都要用到的功能&#xff0c;万一老板让你定制相机方不方&#xff1f;反正我是有点方。关于相机的两天奋斗总结免费送给你。Intent intent new Intent(); intent.setAction(M…

如何在JavaScript中克隆数组

JavaScript has many ways to do anything. I’ve written on 10 Ways to Write pipe/compose in JavaScript, and now we’re doing arrays.JavaScript有许多方法可以执行任何操作。 我已经写了10种用JavaScript编写管道/组合的方法 &#xff0c;现在我们正在做数组。 1.传播…

leetcode 227. 基本计算器 II(栈)

给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 示例 1&#xff1a; 输入&#xff1a;s “32*2” 输出&#xff1a;7 解题思路 利用两个栈&#xff0c;一个记录操作数&#xff0c;一个记录操作符&#xff0c;…

100米队伍,从队伍后到前_我们的队伍

100米队伍,从队伍后到前The last twelve months have brought us a presidential impeachment trial, the coronavirus pandemic, sweeping racial justice protests triggered by the death of George Floyd, and a critical presidential election. News coverage of these e…

idea使用 git 撤销commit

2019独角兽企业重金招聘Python工程师标准>>> 填写commit的id 就可以取消这一次的commit 转载于:https://my.oschina.net/u/3559695/blog/1596669

ES6标准入门(第二版)pdf

下载地址&#xff1a;网盘下载 内容简介 ES6&#xff08;又名 ES2105&#xff09;是 JavaScript 语言的新标准&#xff0c;2015 年 6 月正式发布后&#xff0c;得到了迅速推广&#xff0c;是目前业界超级活跃的计算机语言。《ES6标准入门&#xff08;第2版&#xff09;》…

hexo博客添加暗色模式_我如何向网站添加暗模式

hexo博客添加暗色模式同一个网站&#xff0c;两种不同的配色方案 (Same website, two different color schemes) Last year I made it a point to redesign my website from scratch. I wanted something simple and minimalist looking that clearly stated what this was — …

leetcode 331. 验证二叉树的前序序列化

序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时&#xff0c;我们可以记录下这个节点的值。如果它是一个空节点&#xff0c;我们可以使用一个标记值记录&#xff0c;例如 #。_9_/ \3 2/ \ / \4 1 # 6 / \ / \ / \ # # # # # # 例如&#xff0…

mongodb数据可视化_使用MongoDB实时可视化开放数据

mongodb数据可视化Using Python to connect to Taiwan Government PM2.5 open data API, and schedule to update data in real time to MongoDB — Part 2使用Python连接到台湾政府PM2.5开放数据API&#xff0c;并计划将数据实时更新到MongoDB —第2部分 目标 (Goal) This ti…