反转每对括号间的子串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;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169064.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python如何将字符串分割成单个字符,并形成一个list?

    Python如何将字符串分割成单个字符,并形成一个list?一个字符串可以看做是一个list具体操作如下&gt;&gt;&gt;a="这是一段话"&gt;&gt;&gt;a[0]’这’&gt;&gt;&gt;list(a)[‘这’,’是’,’一’,’段’,’话’]&gt;&gt;&gt;forxina: print(x) 这是一段话&gt;&gt;&gt;所以

  • CompareNoCase

    CompareNoCaseCString::CompareNoCaseintCompareNoCase(LPCTSTRlpsz)const;返回值:如果字符串是一样的(不区分大小写)则返回零值;如果CString对象

  • (私人收藏)型男讲座-瞬间必杀50技「建议收藏」

    (私人收藏)型男讲座-瞬间必杀50技「建议收藏」型男讲座-瞬间必杀50技https://pan.baidu.com/s/1rRZWRwZlqzoxM8X1umlsnA1ipz

  • Android微信撤回消息如何恢复?「建议收藏」

    Android微信撤回消息如何恢复?「建议收藏」2019新年已经在向我们招手,马上就是春节啦!小编提前在这里给大家拜个早年!今天给大家带来年底最后一篇技术文章,祝大家新的一年在电子数据取证工作上势如破“猪”!在日常办案过程中,技术人员常会处理有关微信聊天数据的恢复工作。其中有一类消息比较特殊,那就是撤回消息,它不属于删除消息,但是形式却与删除消息类似,亦即被撤回之后的消息也是不可见的,并且很难被提取。在这篇文章中,我们就对Android撤…

  • vim常用命令总结[通俗易懂]

    vim常用命令总结[通俗易懂]先说明下,本文参考:https://www.cnblogs.com/yangjig/p/6014198.html总结的很好,话不多说,先上图在命令状态下对当前行用==(连按=两次),或对多行用

  • mysql fsync_mysql fsync

    mysql fsync_mysql fsync标签:1介绍数据库系统从诞生那天开始,就面对一个很棘手的问题,fsync的性能问题。组提交(groupcommit)就是为了解决fsync的问题。最近,遇到一个业务反映MySQL创建分区表很慢,仔细分析了一下,发现InnoDB在创建表的时候有很多fsync——每个文件会有4个fsync的调用。当然,并不每个fsync的开销都很大。这里引出几个问题:(1)问题1:为什么fsync开销相对都比较大…

发表回复

您的电子邮箱地址不会被公开。

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