https://www.lanqiao.cn/problems/20092/learning/?page=1&first_category_id=1
# 当匹配到G1的时候,在什么条件下会导致它不能被视为国一?
# 1 1前面有偶数个G,分解为G, GG, GG... G1 可能会导致 G超过一个
# 1.1 涉及到G的数量问题, 数字前面有若干个G 举例, 若同时存在 GG2, G2 (2前有奇数个G、偶数个G) 即可满足不分解出G,也可以有2 和 G2
# 1.2 但是如果只有一种,如只有G2, GGG2, 则需要分解出一个G才能满足同时存在 2 和 G2
# 1.3 由于只有一个G , 最多只会出现一个数字出现全奇数G/全偶数G, 如果字符串末尾是连续奇数G则所有数字都必然存在奇数G和偶数Gs = input()
odd_even = [[0, 0] for _ in range(4)] # odd_even[x][0] 代表 数字x前有偶数个G 的数字x个数, odd_even[x][1] 代表 数字x前有奇数个G 的数字x个数
cnt = 0
for ch in s:if ch == 'G':cnt += 1else:odd_even[int(ch)][cnt % 2] += 1cnt = 0
if cnt % 2 or (odd_even[2][0] > 0) ^ (odd_even[2][1] > 0) or (odd_even[3][0] > 0) ^ (odd_even[3][1] > 0):# 存在奇数G1,偶数G1,且其他地方分解出G了,则奇数G1会被分解成若干个GG 和1个G1 , 偶数G1会被分解成若干个GG 和 1个1print(odd_even[1][1])
else:if (odd_even[1][0] > 0) ^ (odd_even[1][1] > 0):# 只存在奇数G1 或 只存在偶数G1, 若只存在奇数G1, 其中一个分解为若干GG,一个G,一个1; 若只存在偶数G1,只有一个能分解成若干GG, 一个G, 一个G1print(odd_even[1][1] - 1 if odd_even[1][1] > 0 else 1)else:# 奇数G1分解为GG,G1, 偶数G1中有一个分解为GG,G,G1print(odd_even[1][1] + 1)