这道题的难点主要是在于题意的理解,根据题意,A可以删除"AAAA...AAAA",中间的A,B可以删除"BBBB....BBBB",中间的B,但是不能删除两头,所以不会出现类似于祖玛那种删除中间字段,然后重新连接后又可以删除另一个字符的情况,那么这道题就只需要统计A和B最多可以删除的次数,用的是贪心思想,最优策略就是每个人每次删除都删除的最少,这样可以删除的次数最多,也就越可能获胜。
func winnerOfGame(colors string) bool {
var a, b int
c, count := ' ', 0
for _, v := range colors {
if v != c {
c = v
count = 1
}else {
count ++
if count >= 3 {
if c == 'A' {
a ++
}else {
b ++
}
}
}
}
return a > b
}