• 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"
     

    提示:

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    /* 
    a(bcdefghijkl(mno)p)q
    
    a ['a']
    ( ['a', '']
    b ['a', 'b']
    c ['a', 'bc']
    d ['a', 'bcd']
    e ['a', 'bcde']
    f ['a', 'bcdef']
    g ['a', 'bcdefg']
    h ['a', 'bcdefgh']
    i ['a', 'bcdefghi']
    j ['a', 'bcdefghij']
    k ['a', 'bcdefghijk']
    l ['a', 'bcdefghijkl']
    ( ['a', 'bcdefghijkl', '']
    m ['a', 'bcdefghijkl', 'm']
    n ['a', 'bcdefghijkl', 'mn']
    o ['a', 'bcdefghijkl', 'mno']
    ) ['a', 'bcdefghijklonm']
    p ['a', 'bcdefghijklonmp']
    ) ['apmnolkjihgfedcb']
    q ['apmnolkjihgfedcbq']
    
    作者:tuotuoli
    链接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses/solution/1190-fan-zhuan-mei-dui-gua-hao-jian-de-zi-chuan-ji/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/
    
    //思路
    //temp为当前输入的连在一起的字符串
    //若是字符 则放到temp后
    //若遇到 左括号 将temp入栈 temp = ""
    //若遇到 右括号 令temp = top + reverse(temp)
    class Solution {
    public:
        string reverseParentheses(string s) {
            stack<string> my_stack;
            string temp="";
            for (char ch : s)
            {
                if (ch == '(')
                {
                    my_stack.push(temp);
                    temp = "";
                }
                else if (ch == ')')
                {
                    reverse(temp.begin(), temp.end());
                    temp = my_stack.top() + temp;
                    my_stack.pop();
                }
                else
                    temp += ch;
            }
            return temp;
        }
    };
  • 相关阅读:
    杭电 1013 Digital Roots
    杭电 1040 As Easy As A+B 【排序】
    杭电 2092 整数解
    bzoj3223
    bzoj3224
    LA3905
    bzoj3601
    bzoj1002
    bzoj3105
    bzoj3332
  • 原文地址:https://www.cnblogs.com/lancelee98/p/13246008.html
Copyright © 2020-2023  润新知