以下是一个解决"按组计数序列"的示例代码:
def count_sequence(nums):
counts = []
current_num = None
current_count = 0
for num in nums:
if num != current_num: # 如果当前数字与前一个数字不同
if current_num is not None: # 如果不是第一个数字
counts.append((current_num, current_count)) # 添加上一个数字的计数
current_num = num
current_count = 1
else: # 如果当前数字与前一个数字相同
current_count += 1
counts.append((current_num, current_count)) # 添加最后一个数字的计数
return counts
# 测试样例
nums = [1, 1, 2, 3, 3, 3, 4, 4, 5, 5, 5, 5]
result = count_sequence(nums)
print(result)
输出结果为:[(1, 2), (2, 1), (3, 3), (4, 2), (5, 4)]
这个示例代码中,count_sequence
函数接受一个数字列表作为输入,并返回一个包含每个数字及其连续出现的次数的元组列表。算法利用一个循环遍历整个列表,对每个数字进行统计,并将结果存储在counts
列表中。在循环中,通过比较当前数字与前一个数字是否相同来判断是否需要开始统计新的数字。最后,将最后一个数字的统计结果也添加到counts
列表中。最终返回counts
列表作为结果。
下一篇:按组计数,并添加残疾类别