反转每对括号间的子串java_已知入栈序列求出栈序列

反转每对括号间的子串java_已知入栈序列求出栈序列给出一个字符串 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”输出:“apmnolkjihgfedcb

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给出一个字符串 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”

提示:

0 <= s.length <= 2000
s 中只有小写英文字母和括号
我们确保所有括号都是成对出现的

class Solution { 
   
public:
    stack<char>s1;
    queue<char>s2;
    bool isalpha(char a){ 
   
        return a >= 'a' && a <= 'z';
    }
    string reverseParentheses(string s) { 
   
        for(auto &a : s){ 
   
            if(isalpha(a) || a == '('){ 
   
                s1.push(a);
            }
            else{ 
   
                while(s1.top() != '('){ 
   
                    s2.push(s1.top());
                    s1.pop();
                }
                s1.pop();
                while(s2.size()){ 
   
                    s1.push(s2.front());
                    s2.pop();
                }
            }
        }
        string t = "";
        while(s1.size()){ 
   
            t.append(1,s1.top());
            s1.pop();
        }
        reverse(t.begin(),t.end());
        return t;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168546.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • zynq双核运行设计_zynq udp

    zynq双核运行设计_zynq udp前面文章讲解了《zynq高速存储方案》,那种方案是针对单个pciehost设计的方案,当项目需求记录速度很高,并且没有国产化要求时,可以考虑使用ZynqUltraScale+系列的ZU11EG芯片,该芯片成本低,且支持4个PCIe硬核,可以将该4个pcie都配置成host模式,在每个host下挂载pcie3.0x4的SSD固态硬盘,这样每个pciehost能够跑的速率就是ssd盘能够支持的最大速率,如果选择三星的SSD盘,那么PCIe3.0x4读写速率能够到3GB/s,那么4个…

    2022年9月1日
  • idea2021永久激活码【2021.7最新】

    (idea2021永久激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html65MJGLILER-eyJsaWNlbnNlSWQi…

    2022年3月22日
  • 查找-散列查找

    查找-散列查找1.散列的相关概念散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值key的映射f(key),若查找集合中存在这个记录,则必定在f(key)的位置上。这里我们把这种对应关系f称为散列函数,又称为哈希(Hash)函数。按这个思想,采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为

    2022年5月14日
  • 模仿学习笔记:行为克隆

    模仿学习笔记:行为克隆1模仿学习模仿学习(ImitationLearning)不是强化学习,而是强化学习的一种替代品。 模仿学习与强化学习有相同的目的: 两者的目的都是学习策略网络,从而控制智能体。 模仿学习与强化学习又有不同的原理: 模仿学习向人类专家学习,目标是让策略网络做出的决策与人类专家相同; 强化学习利用环境反馈的奖励改进策略,目标是让累计奖励(即回报)最大化。 2行为克隆概述行为克隆(BehaviorCloning)是最简单的模仿学习。 行为克隆的目的是模仿人的动作

    2022年9月15日
  • 降维算法:主成分分析 VS 自动编码器

    降维算法:主成分分析 VS 自动编码器降维是一种减少特征空间维度以获得稳定的、统计上可靠的机器学习模型的技术。降维主要有两种途径:特征选择和特征变换。特征选择通过选择重要程度最高的若干特征,移除共性的或者重要程度较低的特征。特征转换也称为特征提取,试图将高维数据投影到低维空间。一些特征转换技术有主成分分析(PCA)、矩阵分解、自动编码器(Autoencoders)、t-Sne、UMAP等。本文主要介绍了主成分分析以及自动编码器两种方法,具体分析两者的优缺点,并且通过一个生动的示例进行详解。主成分分析主成分分析是一种无监督技术,将原始数

    2022年5月27日
  • mean shift应用_使用Google地图制作MEAN应用(第二部分)

    mean shift应用_使用Google地图制作MEAN应用(第二部分)meanshift应用介绍(Introduction)Welcomeback!欢迎回来!Lasttime,wecreatedanapplicationthatintegratedGoogleMapsdirectlyintotheMEANstack.Theappprovidedusapaneltocreateusers,tagthe…

    2022年5月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号