给你一个整数数组 colors
,它表示一个由红色和蓝色瓷砖组成的环,第 i 块瓷砖的颜色为 colors[i] :
- colors[i] == 0 表示第 i 块瓷砖的颜色是 红色 。
- colors[i] == 1 表示第 i 块瓷砖的颜色是 蓝色 。
环中连续 3 块瓷砖的颜色如果是 交替
颜色(也就是说中间瓷砖的颜色与它 左边
和 右边
的颜色都不同),那么它被称为一个 交替
组。
请你返回 交替
组的数目。注意 ,由于 colors
表示一个 环 ,第一块
瓷砖和 最后一块
瓷砖是相邻的
。
模拟即可,注意边界情况。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class Solution: def numberOfAlternatingGroups(self, colors: List[int]) -> int: n = len(colors) cnt = 0 for i in range(1, n-1): if colors[i-1] == colors[i+1] and colors[i] != colors[i-1]: cnt += 1 else: continue if colors[n-2] == colors[0] and colors[n-1] != colors[0]: cnt += 1 if colors[n-1] == colors[1] and colors[n-1] != colors[0]: cnt += 1 return cnt
|