如何统计字符串中重复元素序列的出现次数及长度?
统计字符串中连续'F'序列的次数及长度
给定目标字符串:
string = 'FFFFFFFFFFFFFFFFFFFFFABCABCABCBACBCABCBCABCABCBACBFFFFFACBCABCAFFF'
我们需要统计其中连续'F'组成的序列的出现次数,以及每个序列的长度。以下提供两种实用实现方案:
方案一:使用正则表达式(简洁高效)
利用正则表达式匹配所有连续的'F'序列,再统计次数和长度:
import re string = 'FFFFFFFFFFFFFFFFFFFFFABCABCABCBACBCABCBCABCABCBACBFFFFFACBCABCAFFF' # 匹配所有连续的'F'序列 f_sequences = re.findall(r'F+', string) sequence_count = len(f_sequences) sequence_lengths = [len(seq) for seq in f_sequences] print(f"连续'F'序列出现次数:{sequence_count}") print(f"各序列长度:{sequence_lengths}")
运行结果:
连续'F'序列出现次数:3 各序列长度:[21, 5, 3]
方案二:遍历字符串(无需依赖正则库)
通过遍历字符串逐个字符判断,手动统计连续'F'的长度:
string = 'FFFFFFFFFFFFFFFFFFFFFABCABCABCBACBCABCBCABCABCBACBFFFFFACBCABCAFFF' sequence_lengths = [] current_f_length = 0 for char in string: if char == 'F': current_f_length += 1 else: if current_f_length > 0: sequence_lengths.append(current_f_length) current_f_length = 0 # 处理字符串末尾以'F'结尾的情况 if current_f_length > 0: sequence_lengths.append(current_f_length) sequence_count = len(sequence_lengths) print(f"连续'F'序列出现次数:{sequence_count}") print(f"各序列长度:{sequence_lengths}")
运行结果与方案一完全一致。
内容的提问来源于stack exchange,提问作者Cam
相关产品推荐
相关产品推荐

