mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 08:27:30 +08:00
61 lines
1.7 KiB
Markdown
61 lines
1.7 KiB
Markdown
# [1021. Remove Outermost Parentheses](https://leetcode.com/problems/remove-outermost-parentheses/)
|
|
|
|
## 题目
|
|
|
|
A valid parentheses string is either empty (""), "(" + A + ")", or A + B, where A and B are valid parentheses strings, and + represents string concatenation. For example, "", "()", "(())()", and "(()(()))" are all valid parentheses strings.
|
|
|
|
A valid parentheses string S is primitive if it is nonempty, and there does not exist a way to split it into S = A+B, with A and B nonempty valid parentheses strings.
|
|
|
|
Given a valid parentheses string S, consider its primitive decomposition: S = P\_1 + P\_2 + ... + P\_k, where P\_i are primitive valid parentheses strings.
|
|
|
|
Return S after removing the outermost parentheses of every primitive string in the primitive decomposition of S.
|
|
|
|
|
|
Example 1:
|
|
|
|
```c
|
|
Input: "(()())(())"
|
|
Output: "()()()"
|
|
Explanation:
|
|
The input string is "(()())(())", with primitive decomposition "(()())" + "(())".
|
|
After removing outer parentheses of each part, this is "()()" + "()" = "()()()".
|
|
```
|
|
|
|
Example 2:
|
|
|
|
```c
|
|
Input: "(()())(())(()(()))"
|
|
Output: "()()()()(())"
|
|
Explanation:
|
|
The input string is "(()())(())(()(()))", with primitive decomposition "(()())" + "(())" + "(()(()))".
|
|
After removing outer parentheses of each part, this is "()()" + "()" + "()(())" = "()()()()(())".
|
|
```
|
|
|
|
Example 3:
|
|
|
|
```c
|
|
Input: "()()"
|
|
Output: ""
|
|
Explanation:
|
|
The input string is "()()", with primitive decomposition "()" + "()".
|
|
After removing outer parentheses of each part, this is "" + "" = "".
|
|
```
|
|
|
|
Note:
|
|
|
|
- S.length <= 10000
|
|
- S[i] is "(" or ")"
|
|
- S is a valid parentheses string
|
|
|
|
|
|
## 题目大意
|
|
|
|
题目要求去掉最外层的括号。
|
|
|
|
## 解题思路
|
|
|
|
用栈模拟即可。
|
|
|
|
|
|
|