字符串中非相邻相同字符分组的出现次数统计实现需求
连续相邻字符分组计数实现
需求说明
对输入字符串的字符按连续相邻规则分组计数,相同字符如果不相邻则拆分到不同分组单独统计。
示例
- 输入:
'aabbcdab' - 预期输出:
a:2 b:2 c:1 d:1 a:1 b:1
实现方案(Python)
核心逻辑
- 先处理空字符串的边界场景,避免运行报错
- 初始化当前统计的字符为字符串第一个字符,计数初始值为1
- 从字符串第二个字符开始遍历:
- 若当前遍历字符和正在统计的字符一致,计数+1
- 若不一致,将当前统计的字符和计数存入结果,重置当前统计字符为遍历到的新字符,计数归1
- 遍历结束后,将最后一组的统计结果补充到结果里
代码实现
def count_consecutive_groups(input_str): if not input_str: return [] result = [] current_char = input_str[0] current_cnt = 1 for c in input_str[1:]: if c == current_char: current_cnt += 1 else: result.append(f"{current_char}:{current_cnt}") current_char = c current_cnt = 1 # 追加最后一组统计结果 result.append(f"{current_char}:{current_cnt}") return result # 测试运行 if __name__ == "__main__": test_input = 'aabbcdab' res = count_consecutive_groups(test_input) for line in res: print(line)
运行上述代码即可得到和示例完全一致的输出结果。
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

