Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
给出一列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

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理