第二题,从做到右,再从右到左遍历 func main() { var n int for { flag, _ := fmt.Scanln(&;n) if flag == 0 { break } var s string fmt.Scanln(&;s) count := make([]int, n+1) for i := 0; i <= n; i++ { count[i] = 1 } for i := 0; i < n; i++ { if s[i] == '-' { count[i] = count[i+1] + 1 } else { count[i+1] = count[i] + 1 } } for i := n; i > 0; i-- { if s[i-1] == '-' &;&; count[i-1] <= count[i] { count[i-1] = count[i] + 1 } else if s[i-1] == '+' &;&; count[i-1] >= count[i] { count[i] = count[i-1] + 1 } } sum := 0 for i := 0; i <= n; i++ { sum += count[i] } fmt.Println(sum) } }
2 1

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务