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

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)

相关文章:

  • Secs/Gem第八讲(基于secs4net项目的ChatGpt介绍)
  • 剑指offer19_链表中倒数第k个节点
  • Netty集群搭建
  • python打卡day48
  • PandasAI使用
  • 深入解析 Pandas 核心数据结构:Series 与 DataFrame
  • 重读《人件》Peopleware -(15)Ⅱ 办公环境 Ⅷ 撑伞之步:构建理想办公环境(下)
  • 【C++系列】智能指针自定义析构
  • 6.5 自学测试 数据库基础 Day5
  • C++11 右值引用
  • 第十八章 归档与备份
  • python打卡训练营打卡记录day48
  • JS的数据类型分类
  • 自动交换两个文件的文件名 VSB脚本技巧 电脑技巧
  • java面试:JAVA并发篇
  • 《双指针》题集
  • Codeforces Educational 179(ABCDE)
  • 聊聊集群间数据复制和持久化机制
  • 联邦学习与边缘计算结合
  • Ubuntu 上安装 Git LFS
  • 计算机应用技术是学什么的/网站关键词搜索排名优化
  • 提高审美的网站推荐/网络服务商电话
  • 做网页推广的网站/西安分类信息seo公司
  • 广东网站制作/一般的电脑培训班要多少钱
  • php网站的数据库在哪/百度快照投诉中心官网
  • 内蒙古网站seo/网站优化 福州