给出一列A和B组成的字符串,选手A和B轮流操作,每次A看到三个相连的A,则可以去掉中间的A,B看到三个相连的B,则可以去掉中间的B,如果谁先无法找到可消除的字母,则输,输出A是否能赢
每次把三个相邻的数中间一个去掉,并不会影响对手可选择的消除位置,于是直接统计三个A和B(若有四个相邻,统计两次)
1 #2038
2 #Runtime: 166 ms (Beats 83.6%)
3 #Memory: 14.8 MB (Beats 89.52%)
4
5 class Solution(object):
6 def winnerOfGame(self, colors):
7 """
8 :type colors: str
9 :rtype: bool
10 """
11 a = 0
12 for i in xrange(1, len(colors) - 1):
13 if colors[i - 1] == colors[i] == colors[i + 1]:
14 if colors[i] == 'A':
15 a += 1
16 else:
17 a -= 1
18 return a > 0