反转每对括号间的子串 c语言,1190. 反转每对括号间的子串

该博客主要介绍了如何解决LeetCode上的1190题——反转每对括号间的子串。通过使用栈来存储子串,遇到左括号时将当前子串入栈,遇到右括号则将栈顶子串反转并连接到当前子串。最后返回结果字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给出一个字符串 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 中只有小写英文字母和括号

我们确保所有括号都是成对出现的

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/*a(bcdefghijkl(mno)p)q

a [‘a‘]

( [‘a‘, ‘‘]

b [‘a‘, ‘b‘]

c [‘a‘, ‘bc‘]

d [‘a‘, ‘bcd‘]

e [‘a‘, ‘bcde‘]

f [‘a‘, ‘bcdef‘]

g [‘a‘, ‘bcdefg‘]

h [‘a‘, ‘bcdefgh‘]

i [‘a‘, ‘bcdefghi‘]

j [‘a‘, ‘bcdefghij‘]

k [‘a‘, ‘bcdefghijk‘]

l [‘a‘, ‘bcdefghijkl‘]

( [‘a‘, ‘bcdefghijkl‘, ‘‘]

m [‘a‘, ‘bcdefghijkl‘, ‘m‘]

n [‘a‘, ‘bcdefghijkl‘, ‘mn‘]

o [‘a‘, ‘bcdefghijkl‘, ‘mno‘]

) [‘a‘, ‘bcdefghijklonm‘]

p [‘a‘, ‘bcdefghijklonmp‘]

) [‘apmnolkjihgfedcb‘]

q [‘apmnolkjihgfedcbq‘]

作者:tuotuoli

链接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses/solution/1190-fan-zhuan-mei-dui-gua-hao-jian-de-zi-chuan-ji/来源:力扣(LeetCode)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/

//思路//temp为当前输入的连在一起的字符串//若是字符 则放到temp后//若遇到 左括号 将temp入栈 temp = ""//若遇到 右括号 令temp = top + reverse(temp)

classSolution {public:string reverseParentheses(strings) {

stackmy_stack;string temp="";for (charch : s)

{if (ch == ‘(‘)

{

my_stack.push(temp);

temp= "";

}else if (ch == ‘)‘)

{

reverse(temp.begin(), temp.end());

temp= my_stack.top() +temp;

my_stack.pop();

}elsetemp+=ch;

}returntemp;

}

};

原文:https://www.cnblogs.com/lancelee98/p/13246008.html

### C语言竞赛题库 为了帮助准备C语言竞赛,这里提供了50道精选的练习题目。这些题目涵盖了基础语法、数据结构、算法等多个方面。 #### 题目列表 1. 编写一个函数来计算两个整数的最大公约数。 2. 实现快速排序算法并测试其性能。 3. 使用递归方法实现斐波那契数列。 4. 设计一个栈的数据结构,并实现基本操作如入栈和出栈。 5. 创建一个队列,并完成相应的入队和出队功能。 6. 定义链表节点结构体,编写代码初始化链表以及遍历打印所有元素。 7. 给定字符串数组,找出其中最长公共前缀。 8. 输入一组数字,判断是否存在重复项。 9. 计算阶乘的结果。 10. 判断给定年份是否为闰年。 11. 将十进制转换成二进制表示形式。 12. 找到数组中的最大值及其索引位置。 13. 对字符进行加密解密处理(凯撒密码)。 14. 检查输入的括号序列是否合法匹配。 15. 查找二维矩阵中最短路径长度。 16. 构建哈希表存储键值对关系。 17. 解决经典的八皇后问题。 18. 复杂度分析:给出一段代码的时复杂度O(nlogn)解释说明。 19. 动态规划求解背包问题最优方案。 20. 字符串模式匹配KMP算法的应用实例。 21. 广度优先搜索BFS解决迷宫寻路难题。 22. 深度优先搜索DFS探索图连通分量数量。 23. 堆排序HeapSort的具体实现过程。 24. 合并k个有序链表成为新的升序排列。 25. 位运算技巧用于奇偶性检测。 26. 排列组合生成器,列举指定范围内所有的可能情况。 27. 数字反转后的平方根取整比较原数值大小。 28. 贪心策略选取最多不相交区数目。 29. 双指针法优化两数之和查找效率。 30. LRU缓存淘汰机制的设计思路分享。 31. Trie树构建单词自动补全系统框架。 32. Bloom过滤器原理介绍及简单应用案例。 33. RSA公钥私钥体系下的消息签名验证流程。 34. Boyer-Moore字符串搜索算法特点总结。 35. Morris遍历红黑树特性讲解与实践演练。 36. A*启发式最短路径寻找算法解析。 37. Manacher马拉车算法高效回文子串定位。 38. Suffix Array后缀数组加速文本检索速度。 39. Segment Tree线段树支持动态范围查询更新。 40. Fenwick Tree树状数组维护累积频率统计。 41. Hopcroft-Karp二部图最大匹配算法描述。 42. Ford-Fulkerson网络流增广路定理证明推导。 43. Edmonds-Karp最小费用最大流模型建立。 44. Dinic预流推进算法改进版Dinic算法阐述。 45. Kosaraju强联通分支Tarjan缩点技术探讨。 46. Tarjan离线LCA最近公共祖先询问解答。 47. Prufer编码解码无向树形态变换规律研究。 48. Cartesian Tree笛卡尔树性质归纳整理。 49. Treap随机化平衡二叉查找树概念引入。 50. Skip List跳跃表替代传统RBTree解决方案评估。 以上每一道题目都旨在考察不同的知识点和技术要点,在实际编程过程中能够加深理解掌握核心技能[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值