leetcode 1190. 反转每对括号间的子串

题目

给出一个字符串 s(仅含有小写英文字母和括号)。

请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。

注意,您的结果中 不应 包含任何括号。

示例 1:

输入:s = “(abcd)”
输出:“dcba”
示例 2:

输入:s = “(u(love)i)”
输出:“iloveu”
示例 3:

输入:s = “(ed(et(oc))el)”
输出:“leetcode”
示例 4:

输入:s = “a(bcdefghijkl(mno)p)q”
输出:“apmnolkjihgfedcbq”

解题思路

使用两个链表,stack(栈),temp(队列)

  1. 只有需要翻转括号中的内容时,才会把需要翻转的内容临时存在temp当中,翻转之后则存在stack中
  2. stack里面只存有’(‘和字母,当遇到’)‘时,就说明存在一个完整的括号,括号里面的内容需要翻转,因此我们将stack的元素不断出栈并放入temp中存储,直到遇到’(’,说明当前括号内的内容已经全部出栈完毕了
  3. 利用stack后进先出的特性,所以将temp设置为先进先出的队列,将stack的元素添加到temp的队尾,再从temp的队头取元素,即可达到翻转的效果

代码

    public String reverseParentheses(String s) {LinkedList<Character> stack = new LinkedList<>();LinkedList<Character> temp = new LinkedList<>();for (int i = 0; i < s.length(); i++) {if(s.charAt(i)==')'){while (stack.getLast()!='(')temp.addLast(stack.removeLast());stack.removeLast();while (temp.size()>0)stack.addLast(temp.removeFirst());}else {stack.addLast(s.charAt(i));}}StringBuilder res = new StringBuilder();while (stack.size()>0)res.append(stack.removeFirst());return res.toString();}

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

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

相关文章

yolo人脸检测数据集_自定义数据集上的Yolo-V5对象检测

yolo人脸检测数据集计算机视觉 (Computer Vision) Step by step instructions to train Yolo-v5 & do Inference(from ultralytics) to count the blood cells and localize them.循序渐进的说明来训练Yolo-v5和进行推理(来自Ultralytics )以对血细胞进行计数并将其定位。 …

oauth2-server-php-docs 授权类型

授权码 概观 在Authorization Code交付式时使用的客户端想要请求访问受保护资源代表其他用户&#xff08;即第三方&#xff09;。这是最常与OAuth关联的授予类型。 详细了解授权码 用例 代表第三方来电履行 创建一个实例OAuth2\GrantType\AuthorizationCode并将其添加到您的服务…

flask框架视图和路由_角度视图,路由和NgModule的解释

flask框架视图和路由Angular vs AngularJS (Angular vs AngularJS) AngularJS (versions 1.x) is a JavaScript-based open source framework. It is cross platform and is used to develop Single Page Web Application (SPWA). AngularJS(版本1.x)是一个基于JavaScript的开源…

NGUI EventDelagate事件委托

using System.Collections; using System.Collections.Generic; using UnityEngine;public class BUttonClick : MonoBehaviour {public UIButton button_01;void Start(){if (button_01 null){Debug.Log("button组件丢失了");}else{//首先将脚本中的ClicktheButton…

leetcode 461. 汉明距离(位运算)

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y&#xff0c;计算它们之间的汉明距离。 注意&#xff1a; 0 ≤ x, y < 231. 示例:输入: x 1, y 4输出: 2解释: 1 (0 0 0 1) 4 (0 1 0 0)↑ ↑上面的箭头指出了对应二进…

图深度学习-第2部分

有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU’s YouTube Lecture “Deep Learning”. This is a full transcript of the lecture video & matching slides. We hope, you enjoy this as much as the videos. Of cou…

Linux下 安装Redis并配置服务

一、简介 1、 Redis为单进程单线程模式&#xff0c;采用队列模式将并发访问变成串行访问。 2、 Redis不仅仅支持简单的k/v类型的数据&#xff0c;同时还提供list&#xff0c;set&#xff0c;zset&#xff0c;hash等数据结构的存储。 3、 Redis支持数据的备份&#xff0c;即mas…

大omega记号_什么是大欧米茄符号?

大omega记号Similar to big O notation, big Omega(Ω) function is used in computer science to describe the performance or complexity of an algorithm.与大O表示法相似&#xff0c;大Omega(Ω)函数在计算机科学中用于描述算法的性能或复杂性。 If a running time is Ω…

leetcode 477. 汉明距离总和(位运算)

theme: healer-readable 题目 两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。 计算一个数组中&#xff0c;任意两个数之间汉明距离的总和。 示例: 输入: 4, 14, 2 输出: 6 解释: 在二进制表示中&#xff0c;4表示为0100&#xff0c;14表示为1110&…

什么是跨域及跨域请求资源的方法?

1、由于浏览器同源策略&#xff0c;凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。 2、跨域请求资源的方法&#xff1a; (1)、porxy代理(反向服务器代理) 首先将用户发送的请求发送给中间的服务器&#xff0c;然后通过中间服务器再发送给后台服…

量子信息与量子计算_量子计算为23美分。

量子信息与量子计算On Aug 13, 2020, AWS announced the General Availability of Amazon Braket. Braket is their fully managed quantum computing service. It is available on an on-demand basis, much like SageMaker. That means the everyday developer and data scie…

全面理解Java内存模型

Java内存模型即Java Memory Model&#xff0c;简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型&#xff0c;所以JMM是隶属于JVM的。 如果我们要想深入了解Java并发编程&#xff0c;就要先理解好Java内存模型。Java内存模型定义了多…

React Native指南

React本机 (React Native) React Native is a cross-platform framework for building mobile applications that can run outside of the browser — most commonly iOS and Android applicationsReact Native是一个跨平台框架&#xff0c;用于构建可在浏览器外部运行的移动…

leetcode 1074. 元素和为目标值的子矩阵数量(map+前缀和)

给出矩阵 matrix 和目标值 target&#xff0c;返回元素总和等于目标值的非空子矩阵的数量。 子矩阵 x1, y1, x2, y2 是满足 x1 < x < x2 且 y1 < y < y2 的所有单元 matrix[x][y] 的集合。 如果 (x1, y1, x2, y2) 和 (x1’, y1’, x2’, y2’) 两个子矩阵中部分坐…

失物招领php_新奥尔良圣徒队是否增加了失物招领?

失物招领phpOver the past couple of years, the New Orleans Saints’ offense has been criticized for its lack of wide receiver options. Luckily for Saints’ fans like me, this area has been addressed by the signing of Emmanuel Sanders back in March — or has…

教你分分钟使用Retrofit+Rxjava实现网络请求

撸代码之前&#xff0c;先简单了解一下为什么Retrofit这么受大家青睐吧。 Retrofit是Square公司出品的基于OkHttp封装的一套RESTful&#xff08;目前流行的一套api设计的风格&#xff09;网络请求框架。它内部使用了大量的设计模式&#xff0c;以达到高度解耦的目的&#xff1b…

线程与进程区别

一.定义&#xff1a; 进程&#xff08;process&#xff09;是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。 进程中所包含的一个或多个执行单元称为线程&#xff08;thread&#xff09;。进程还拥有一个私有的虚拟地址空间&#xff0c;该空间…

基本SQL命令-您应该知道的数据库查询和语句列表

SQL stands for Structured Query Language. SQL commands are the instructions used to communicate with a database to perform tasks, functions, and queries with data.SQL代表结构化查询语言。 SQL命令是用于与数据库通信以执行任务&#xff0c;功能和数据查询的指令。…

leetcode 5756. 两个数组最小的异或值之和(状态压缩dp)

题目 给你两个整数数组 nums1 和 nums2 &#xff0c;它们长度都为 n 。 两个数组的 异或值之和 为 (nums1[0] XOR nums2[0]) (nums1[1] XOR nums2[1]) … (nums1[n - 1] XOR nums2[n - 1]) &#xff08;下标从 0 开始&#xff09;。 比方说&#xff0c;[1,2,3] 和 [3,2,1…

客户细分模型_Avarto金融解决方案的客户细分和监督学习模型

客户细分模型Lets assume that you are a CEO of a company which have some X amount of customers in a city with 1000 *X population. Analyzing the trends/features of your customer and segmenting the population of the city to land new potential customers would …