反转每对括号间的子串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/169064.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月11日 下午7:00
下一篇 2022年8月11日 下午7:00


相关推荐

  • Intel x86 Emulator Accelerator(HAXM installer)无法安装「建议收藏」

    Intel x86 Emulator Accelerator(HAXM installer)无法安装「建议收藏」在sdkmanager中Intelx86EmulatorAccelerator(HAXMinstaller)后面显示NOTcompatiblewithwindows这个时候可以尝试手动安装Intelx86EmulatorAccelerator(HAXMinstaller)1、在网上下载后,https://software.intel.com/en-us/artic…

    2022年6月28日
    42
  • 手把手教你如何在Ubuntu系统中安装Pycharm

    手把手教你如何在Ubuntu系统中安装PycharmPython 进阶者 18 06 1916 21 前几天带大家一起安装了 Ubuntu14 04 系统 没来得及上车的伙伴可以戳这篇文章 手把手教你在 VMware 虚拟机中安装 Ubuntu14 04 系统 今天小编带大家一起在 Ubuntu14 04 中安装 Pycharm 具体的教程如下 1 首先在主目录下创建 software 文件夹 此时该文件夹为空文件夹 这个文件夹下用于放置安装软件 当然这

    2026年3月27日
    2
  • 蓝牙的自适应跳频技术

    蓝牙的自适应跳频技术蓝牙技术是工作在 2 4GHz 免费工业频段上的短距离无线通信技术 同时工作在 2 4G 频率上的还有其他无线通信标准 例如 802 11 我们知道如果两种频率同时工作在同一个频率段 那么就会产生相互干扰 造成数据传输质量降低 因此早期的蓝牙设计者考虑了这些问题后 决定采用调频的技术避免和 802 11 的频率竞争 即在每一个固定的频率上只驻留很短的时间然后在换一个频率进行数据的通信 但其实早期的蓝牙与 802 11 之间的干扰非常的严重 足以毁掉双方的通信 造成了双方无法共存的局面 于是蓝牙采用了自适应跳频技术

    2026年3月19日
    4
  • java递归算法详解_Java递归算法详解(动力节点整理)

    java递归算法详解_Java递归算法详解(动力节点整理)递归算法是一种直接或者间接调用自身函数或者方法的算法 Java 递归算法是基于 Java 语言实现的递归算法 递归算法的实质是把问题分解成规模缩小的同类问题的子问题 然后递归调用方法来表示问题的解 递归算法对解决一大类问题很有效 它可以使算法简洁和易于理解 递归算法解决问题的特点 1 递归就是方法里调用自身 2 在使用递增归策略时 必须有一个明确的递归结束条件 称为递归出口 3 递归算法解题通常显得很

    2025年6月11日
    5
  • 解析DBR操作系统引导记录数据

    解析DBR操作系统引导记录数据

    2022年1月1日
    43

发表回复

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

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