1221. 分割平衡字符串


解题思路
1利用栈,出栈的情况是栈顶是L 当前元素是R 或者栈顶元素是R 当前元素是L ,其他情况都是入栈
2 能不能分割判断依据是当前栈元素为0 就认为当前分割元素结束
package mainimport "fmt"func balancedStringSplit(s string) int {if len(s) == 0 {return 0}stack := []byte{s[0]}var res intfor i := 1; i < len(s); i++ {if len(stack) > 0 && ((s[i] == 'L' && stack[len(stack)-1] == 'R') || (s[i] == 'R' && stack[len(stack)-1] == 'L')) {stack = stack[:len(stack)-1]if len(stack) == 0 {res++}} else {stack = append(stack, s[i])}}return res}func main() {fmt.Println(balancedStringSplit("RLRRLLRLRL"))fmt.Println(balancedStringSplit("RLLLLRRRLR"))fmt.Println(balancedStringSplit("LLLLRRRR"))fmt.Println(balancedStringSplit("RLRRRLLRLL"))}

