当前位置: 首页 > 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)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/238902.html

相关文章:

  • 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
  • 算法打卡17天(补)
  • Docker知识五:服务编排(Docker Compose概念)
  • HTML前端开发:JavaScript的条分支语句if,Switch
  • 矩阵详解:从基础概念到实际应用
  • 对F1分数的基本认识
  • 深入理解 Spring Cache 及其核心注解
  • 电路图识图基础知识-电动机正反转控制电路详解(二十)
  • 关于 ffmpeg设置摄像头报错“Could not set video options” 的解决方法
  • 需求用例的前置条件和后置条件
  • AI 大模型统一集成|Spring AI + DeepSeek 实战接入指南