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)
上一题
下一题