测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A39435. 村庄与部落

填空题 困难

题目描述

村庄与部落

题目描述

有n个村庄坐落成一条直线,A和B两个部落生活在这里。每个村庄要么无人居住,要么被两个部落之一所占据。

如果连续n个无人居住的村庄两侧都是被部落A占据的村庄,那么这n个村庄也视作被部落A占据;对于部落B也是如此。

请求出被部落A和B分别占据的村庄个数。

输入

第一行,一个整数T,代表测试数据的组数

接下来是T组数据:每组数据仅有一行,包含一个字符串,代表每个村庄的状态

字符串仅包含'A'、'B'和'.'三种字符,分别代表村庄被部落A占据、被部落B占据,以及无人居住。

输出

对于每组数据,输出一行,包含两个整数,分别代表被部落A和B控制的村庄数量

参考答案

# 定义函数,计算连续空村庄的数量 def count_empty_village(s, i):     count = 0     while i < len(s) and s[i] == '':         count += 1         i += 1     return count # 输入测试数据组数 T = int(input()) # 处理每组测试数据 for i in range(T):     s = input()     a_count = 0     b_count = 0     i = 0     while i < len(s):         if s[i] == 'A':             count = count_empty_village(s, i+1)             a_count += count + 1             i += count + 1         elif s[i] == 'B':             count = count_empty_village(s, i+1)             b_count += count + 1             i += count + 1         else:             i += 1     print(a_count, b_count)
上一题 下一题