Skip to content

Latest commit

 

History

History
34 lines (28 loc) · 1.13 KB

2038. 如果相邻两个颜色均相同则删除当前颜色.md

File metadata and controls

34 lines (28 loc) · 1.13 KB

2038. 如果相邻两个颜色均相同则删除当前颜色

题目传送门

点击这里

解题思路

这道题的难点主要是在于题意的理解,根据题意,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 
}