糖果屋: 找到糖果最小的下标,然后两边去推每个下标的糖果 package main import "fmt" func main() { n := 0 fmt.Scanln(&n) s := "" fmt.Scanln(&s) cnt := 0 minIdx := 0 minNum := 0 for i := 0; i < n; i++ { if s[i] == '+' { cnt++ } else { cnt-- } if cnt < minNum { minIdx = i minNum = cnt } } fmt.Println(minIdx) ans := 2 cur := 2 if s[minIdx] == '+' { ans = 1 cur = 1 } for i := minIdx; i < n; i++ { if s[i] == '+' { cur++ } else { cur-- } ans += cur } for i := minIdx - 1; i >= 0; i-- { if s[i] == '+' { cur-- } else { cur++ } ans += cur } fmt.Println(ans) } func min(a, b int) int { if a < b { return a } return b } func max(a, b int) int { if a > b { return a } return b }
点赞 评论

相关推荐

点赞 评论 收藏
分享
威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
牛客网
牛客企业服务