1021. 删除最外层的括号
栈
1 出栈的唯一情况是当前元素是右括号 栈顶是左括号
2 其他情况一概入栈处理
3 当出栈后栈是空是 表明分割结束了
4 按照题意,需要去掉最外层的括号
package mainimport ("fmt""strings")func removeOuterParentheses(S string) string {if len(S)==0{return ""}stack := []byte{S[0]}start :=1var res strings.Builderfor i:=1;i<len(S);i++{if len(stack)>0&&S[i]==')'&&stack[len(stack)-1]=='(' {stack = stack[:len(stack)-1]if len(stack)==0{res.WriteString(S[start:i])start = i+2}}else {stack = append(stack,S[i])}}return res.String()}func main() {fmt.Println(removeOuterParentheses("(()())(())"))fmt.Println(removeOuterParentheses("(()())(())(()(()))"))fmt.Println(removeOuterParentheses("()()"))}



