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

    提示:

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

    C#代码

    public class Solution {
        public string ReverseParentheses(string str) {
            Stack<int> stack = new Stack<int>();
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] == '(')
                {
                    stack.Push(i);
                }
                else if (str[i] == ')')
                {
                    var startIndex = stack.Pop();
                    string mid = str.Substring(startIndex + 1, i - 1 - startIndex);
                    mid = new string(mid.Reverse().ToArray());
    
                    string startStr = str.Substring(0, startIndex);
                    string endStr = str.Substring(i + 1, str.Length - 1 - i);
    
                    str = startStr + "_" + mid + "_" + endStr;
                }
            }
            return new string(str.Where(p=>p!='_').ToArray());        
        }
    }
    
  • 相关阅读:
    idea设置docker远程插件
    Linux安装nfs共享文件
    类文件注释规约
    标准pcm数据(正弦波、方波、三角波)解读
    dB分贝计算
    Ion内存的带cahce与不带cache问题分享
    c++智能指针介绍_补充
    c++智能指针介绍
    wav封装格式
    开博啦。。。
  • 原文地址:https://www.cnblogs.com/fuxuyang/p/14242665.html
Copyright © 2020-2023  润新知