当前位置: 首页 > web >正文

OD 算法题 B卷【反转每对括号间的子串】

文章目录

  • 反转每对括号间的子串

反转每对括号间的子串

  • 给出一个字符串s, 仅含有小写英文字母和英文括号’(’ ‘)’;
  • 按照从括号内到外的顺序,逐层反转每对括号中的字符串,并返回最终的结果;
  • 结果中不能包含任何括号;

示例1
输入:
(abcd)
输出:
dcba

示例2
输入:
(u(love)i)
输出:
iloveu
说明:先反转内部的love子串,然后反转整个字符串;

示例3
输入:
(ed(et(oc))el)
输出:
leetcode

示例4
输入:
a(bcdefghijkl(mno)p)q
输出:
apmnolkjihgfedcbq

示例5
输入:
a(bcdefghijkl(mno)p)
输出:
apmnolkjihgfedcb

python实现

  • 栈数据结构
# 输入数据
s = input().strip()# 看到括号,借助栈结构
# 遍历每个字符,( 和字母入栈
stack = []
total_string = ""
inner_string = ""
for c in s:  # 只反转括号内部的字符串if not stack and c.isalpha():if inner_string:total_string += inner_stringinner_string = ""total_string += ccontinueelif c == "(":stack.append(c)elif stack and c.isalpha():stack.append(c)else:  # ) 出栈inner_string = ''while stack:cur_c = stack.pop()if cur_c != "(":inner_string += cur_celse:break# 反转的内部字符串按照字符一次入栈if stack:for cur_c in inner_string:stack.append(cur_c)if total_string and inner_string:total_string += inner_stringprint(total_string)
elif total_string:print(total_string)
else:print(inner_string)
http://www.xdnf.cn/news/12956.html

相关文章:

  • Java设计模式面试题详解
  • 第十二讲 | 二叉搜索树
  • 庖丁解java(一篇文章学java)
  • 风控系统中常用的概念和架构学习
  • golang循环变量捕获问题​​
  • Ⅱ.楔子 -- C♭和 cbc
  • 经典算法:排序链表
  • DQN算法(详细注释版)
  • 开源项目实战学习之YOLO11:12.7 ultralytics-models-transformer.py
  • SpringMVC简介
  • 【GPT模型训练】第一课:安装PyTorch环境
  • PandasAI使用
  • Doris-2:单虚拟机上非docker化安装Doris实验环境
  • 万利达电动机保护器接ModbusRTU转profibusDP网关与300PLC通讯
  • 2025-06-02-数据库的分类和应用
  • 大数据(3) 分布式文件系统HDFS
  • LeetCode 2894.分类求和并作差
  • 什么是函数对象
  • 【ArcGIS技巧】—村庄规划规划用地规划状态字段生成工具
  • 并发请求函数batchRequests
  • 类加载的过程
  • 【算法笔记】树套树
  • RSA和AES算法核心区别和原理解析
  • Python地理数学可视化:基于函数生成真实感地形
  • WebFuture 升级提示“不能同时包含聚集KEY和大字段””的处理办法
  • 【Docker 02】Docker 安装
  • 71常用控件_QHBoxLayout的使用
  • 浅谈未来汽车电子电气架构发展趋势中的通信部分
  • 【无人机】MavLink通讯协议的回调解析函数及状态机
  • AtCoder Beginner Contest 409(ABCDEF)