Python如何通过统计相邻相同字符实现指定规则的字符串转换
Python相邻重复字符转换功能实现
实现逻辑
- 遍历输入字符串,实时记录当前字符和其连续出现的次数
- 遇到和当前记录不同的字符时,将已统计的当前字符组拼接进结果:如果次数为1仅拼接字符,次数大于1则先拼接次数字符串、再拼接字符
- 遍历结束后,拼接最后一组未处理的字符统计结果
- 全程使用列表存储中间结果,避免字符串频繁拼接带来的性能损耗
完整实现代码
def convert_string(s: str) -> str: # 处理空输入的边界情况 if not s: return "" result = [] current_char = s[0] repeat_count = 1 for char in s[1:]: if char == current_char: repeat_count += 1 else: if repeat_count > 1: result.append(str(repeat_count)) result.append(current_char) current_char = char repeat_count = 1 # 处理最后一组连续字符 if repeat_count > 1: result.append(str(repeat_count)) result.append(current_char) return "".join(result)
功能验证
你可以直接调用函数测试示例场景:
print(convert_string("assdggg")) # 输出结果:a2sd3g
其他测试用例参考:
- 输入
"aaaaa",输出"5a" - 输入
"bbccddde",输出"2b2c3de" - 输入
"a",输出"a" - 输入空字符串,输出空字符串
内容的提问来源于stack exchange,提问作者Soszu98
相关产品推荐
相关产品推荐

