前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【LeetCode每日一题】1190. 反转每对括号间的子串

【LeetCode每日一题】1190. 反转每对括号间的子串

作者头像
公众号guangcity
发布2021-05-31 10:39:53
4310
发布2021-05-31 10:39:53
举报
文章被收录于专栏:光城(guangcity)

题目:

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

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

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

示例 1:

代码语言:javascript
复制
输入:s = "(abcd)"
输出:"dcba"

示例 2:

代码语言:javascript
复制
输入:s = "(u(love)i)"
输出:"iloveu"

示例 3:

代码语言:javascript
复制
输入:s = "(ed(et(oc))el)"
输出:"leetcode"

示例 4:

代码语言:javascript
复制
输入:s = "a(bcdefghijkl(mno)p)q"
输出:"apmnolkjihgfedcbq"

题解:

使用栈,不是右括号就入栈,碰到右括号,拿出当前括号里面的数,再次放进栈中,最终栈存放的数据是我们期望的数,进行前缀相加即可。

代码语言:javascript
复制
class Solution {
public:
    string reverseParentheses(string s) {
        stack<char> st;
        for (auto c : s) {
            if (c != ')') {
                st.push(c);
            } else {
                string tmp;
                while (st.top() != '(') {
                    tmp += st.top();
                    st.pop();
                }
                st.pop();
                for (auto s : tmp) {
                    st.push(s);
                }
            }
        }
        string ans;
        while (!st.empty()) {
            ans = st.top() + ans; st.pop();
        }
        return ans;
    }
};



本节完~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档