糖果屋: 找到糖果最小的下标,然后两边去推每个下标的糖果 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 }
点赞 评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务